2011-01-22 34 views
0

我正在寻找更多的正则表达式帮助,以使用PHP函数preg_match。我需要匹配以下字符串;PHP正则表达式匹配`名称[50]`到“名称”和“50”值

  • string[50]
  • string

理想情况下,返回的数组将是这样的;

  • string50
  • string

任何帮助,将不胜感激:-) 这就是我想出了,但它并没有远程做什么,我希望我的小正则表达式的知识! /([a-z])+(\[[0-9]\])?/i

回答

1

您需要将+放入()(否则,您将匹配完整的字符串,只有字符串的最后一个字符将在结果组中)。在[0-9]之后再添加+。将\[\]移动到()之外,仅返回50(而不是[50]),并使用(?:)?使[50]可选,而不产生组。

/([a-z]+)(?:\[([0-9]+)\])?/i 

Play with it on rubular

+0

耶!谢谢。我怎么能在没有[]的情况下匹配它? :) – tarnfeld 2011-01-22 00:14:01

相关问题