正则表达式在单独的组中捕获单词和数字

时间:2016-10-01 18:27:25

标签: regex regex-group

我需要两组 - 一组用于提取单词,第二组用于提取单词。例如:

['| Sofia           | 300']

需要提取:

Group 1 - Sofia; Group 2 - 300

我的正则表达式尝试:

([a-zA-Z]+[ ]*[a-zA-Z]+)([0-9]+)

我不明白为什么这不匹配。我现在已经读了30分钟了,也许我无法正确地说出我的问题,但我无法找到解决方案。我在这里的想法是每组括号都有一组。它们内部的正则表达式似乎可以自行运行,但是当我尝试捕获2组时 - 它失败了。显然,我错过了关于多组捕获的重要信息。

2 个答案:

答案 0 :(得分:3)

它不匹配,因为您没有匹配“Sofia”和“300”之间的字符。这将匹配“Sofia300”,但不匹配“Sofia 300”或“Sofia | 300”。试试这个:

(\w+ *\w+).*?(\d+)

(为了简洁起见,我使用\w代替[a-zA-Z]\d代替[0-9]。)

答案 1 :(得分:2)

以下内容将为您提供论坛:

/([a-z]+).*\|\s([0-9]+)/i

Example