【发布时间】:2016-08-31 20:10:52
【问题描述】:
对于某些数据处理,我需要将一个字符串拆分为多个项目。 输入字符串的示例是:
'one, two & three and four-five 123-456'
现在,我需要将此字符串分隔为多个项目,可能的分隔符为,、&、(空格)、and、-。但是,这就是我被卡住的地方,当它在两个数字之间时,它不应该在 - 上分裂。
我正在使用 PHP 和 preg_split 进行实际拆分,但是当分隔符位于两个数字(数字,但也可以是 123-456)之间时,我需要一个正则表达式模式来匹配不包括分隔符 - 的分隔符.在 PHP 中使用 trim() 来抑制每个项目周围的空格。
我正在使用以下正则表达式模式:
/(and|,|\s|&)|\D(-)\D/
输出(使用preg_split等之后)是:
[0] => one
[1] => two
[2] => three
[3] => fou
[4] => ive
[5] => 123-456
工作是正确的,但它也需要 - 分隔符周围文本的最后一个和第一个字母。 123-456 项是正确的,因为它不应该在 - 立即被数字包围时匹配(并与 preg_split 分开)。
预期输出是:
[0] => one
[1] => two
[2] => three
[3] => four
[4] => five
[5] => 123-456
感谢任何帮助,如果缺少任何信息,请告诉我,我会更新我的问题。
【问题讨论】:
标签: php regex preg-split