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

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

Example