使用正则表达式识别节点列表

时间:2015-08-14 17:15:28

标签: php regex

以下信息应分为两个数组:

  • foo089,酒吧[120-123,215]

所需的结果是两个数组,其中包含所有列出的数字[089]和[120-123,215](更好的是120,121,122,123而不是120-123,这是可选的)。

应该解析的其他例子:

  • FOO [133,370,390-391],bar120
  • foo123
  • bar145
  • 巴[121303]
  • foo123,bar145

这些都应该产生一个双元数组(第一个是foo,第二个是条形),带有一个条目(例如123或145)或范围(例如133,370,390-391或121,303)。

我总是需要两个数组,以便轻松确定该数字是属于foo还是bar。

限制

  • foo或bar不一定存在
  • 如果两者都存在,则总是订购
  • 数字总是有3位数
  • 只有foo和bar,没有其他的话
  • foo234,不允许使用foo425。如果foo或bar有多个数字,则会在括号中列出

到目前为止我尝试了以下正则表达式:\d{3}|foo\d{3}|bar\d{3}|\d{3}-\d{3}。 但是,使用php中的preg_grep,我得不到所需的结果。

0 个答案:

没有答案