正则表达式捕获单独组中的单词和数字
Regex to capture words and numbers in separate groups
我需要两组 - 一组提取单词,第二组 - 数字。示例:
['| Sofia | 300']
需要提取:
Group 1 - Sofia; Group 2 - 300
我的正则表达式尝试:
([a-zA-Z]+[ ]*[a-zA-Z]+)([0-9]+)
我不明白为什么这不匹配。我已经阅读了 30 分钟,也许我无法正确表述我的问题,但我找不到解决方案。我在这里的想法是每组括号都包含一个组。它们内部的 Regex 本身似乎运行良好,但是当我尝试捕获 2 个组时 - 它失败了。显然我遗漏了一些关于多组捕获的重要信息。
不匹配,因为您没有匹配 "Sofia" 和“300”之间的字符。这会匹配 "Sofia300",但不会匹配 "Sofia 300" 或 "Sofia | 300"。试试这个:
(\w+ *\w+).*?(\d+)
(为简洁起见,我使用 \w
而不是 [a-zA-Z]
和 \d
而不是 [0-9]
。)
以下将为您提供群组:
/([a-z]+).*\|\s([0-9]+)/i
我需要两组 - 一组提取单词,第二组 - 数字。示例:
['| Sofia | 300']
需要提取:
Group 1 - Sofia; Group 2 - 300
我的正则表达式尝试:
([a-zA-Z]+[ ]*[a-zA-Z]+)([0-9]+)
我不明白为什么这不匹配。我已经阅读了 30 分钟,也许我无法正确表述我的问题,但我找不到解决方案。我在这里的想法是每组括号都包含一个组。它们内部的 Regex 本身似乎运行良好,但是当我尝试捕获 2 个组时 - 它失败了。显然我遗漏了一些关于多组捕获的重要信息。
不匹配,因为您没有匹配 "Sofia" 和“300”之间的字符。这会匹配 "Sofia300",但不会匹配 "Sofia 300" 或 "Sofia | 300"。试试这个:
(\w+ *\w+).*?(\d+)
(为简洁起见,我使用 \w
而不是 [a-zA-Z]
和 \d
而不是 [0-9]
。)
以下将为您提供群组:
/([a-z]+).*\|\s([0-9]+)/i