【发布时间】:2017-06-13 23:20:39
【问题描述】:
我想从这个字符串中提取所有数字:'s_0a1f2d4e3c10b'。字符串必须遵循此模式 's_NumberLetterNumberLetter...' 我写了这个匹配整个字符串的正则表达式:
/^q_(?:\d+[a-f])+$/
问题是我不知道如何仅捕获数字。当我在 \d+ 周围加上括号时,正则表达式仅匹配最后一个数字(10)。 这是带括号的正则表达式:
^q_(?:(\d+)[a-f])+$
当然我可以使用preg_match_all('/\d+/', 's_0a1f2d4e3c10b', $matches),但我希望字符串以“s_”开头,并且我只想使用一个正则表达式(如果可能的话)。
我想要的来自s_0a1f2d4e3c10b的输出:
array(0, 1, 2, 4, 3, 10)
【问题讨论】:
标签: php regex preg-match-all