用于匹配状态的正则表达式模式

标签 regex

我只需要匹配以下模式中的城市和州名称。示例:我只想提取萨克拉门托、加利福尼亚州、温哥华、不列颠哥伦比亚省。我不想要美国和加拿大。

我编写了以下正则表达式 [A-Z][a-z]+,但它将名称中带有空格的状态匹配为多个匹配项,而不是单个匹配项。

~ 加利福尼亚州萨克拉门托 ~ 美国;~ 不列颠哥伦比亚省温哥华 ~ 加拿大

~ 贝尔高姆,卡纳塔克邦 ~ 印度;~ 孟买,马哈拉施特拉邦 ~ 印度;~ 赖 bool ,恰蒂斯加尔邦 ~ 印度;~,果阿 ~ 印度;~,北方邦 ~ 印度;~,~ 中国 ~ 图兰,北区 ~以色列

最佳答案

如果您的输入中只有 ASCII 字母,则可以使用

[A-Z][a-z]+(?: +[A-Z][a-z]+)*

请参阅regex demo

图案详细信息:

  • [A-Z][a-z]+ - 一个大写 ASCII 字母,后跟 1 个以上小写 ASCII 字母
  • (?: +[A-Z][a-z]+)* - 零个或多个序列:
    • + - 1 个或多个空格
    • [A-Z][a-z]+ - 一个大写 ASCII 字母,后跟 1 个以上小写 ASCII 字母

关于用于匹配状态的正则表达式模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38876433/

相关文章:

javascript - 正则表达式替换第一行的某些字符

java - 将正则表达式字符串从 Java 转换为 Python

java - 关于奇怪的 Java 正则表达式行为的问题

php - 将 eregi 函数转换为 php 5.3

c# - 如何获取给定捕获的正则表达式组?

用于验证 URI 和/或端口的 JavaScript 正则表达式

Javascript 正则表达式在 Firefox 中不起作用

c# - 所有非字母数字符号的正则表达式

python - 如何使用正则表达式来识别论坛上不同人的帖子?

javascript - 正则表达式选择不起作用