只匹配逗号后没有数字的字母

match only letters after comma without numbers

我在使用 xpath 选择后使用正则表达式匹配特定文本

例如Huntsville, Alabama 11111

我只想要 Alabama 总是在逗号之后 我使用 [^,]*$ 来获取逗号后的文本 但我似乎找不到排除数字或 return 仅排除字母

的方法

另一个例子,当我想在我使用的逗号后得到数字时 [^[0-9],]*$ 但是当我尝试用其他任何东西调整它时,它只有 return 个数字或什么都没有。

[?<=,\s*][a-zA-Z]+ 你可以试试这个。

解释:

?<= => 向后查找以匹配字符串但不包含在捕获组中

,\s* => 匹配逗号后跟 0 个或多个空格

[a-zA-Z]+ => 仅匹配字母(一个或多个)

HTH

要匹配最后一个逗号后的字母单词,您可以使用

[a-zA-Z]+(?=[^,]*$)

参见regex demo

详情

  • [a-zA-Z]+ - 1 个或多个 ASCII 字母
  • (?=[^,]*$) - 后跟 , 以外的 0+ 个字符,直到字符串末尾。

要匹配同一上下文中的 1 个或多个单词,请使用

[a-zA-Z]+(?:\s+[a-zA-Z]+)*(?=[^,]*$)
         ^^^^^^^^^^^^^^^^^

this regex demo

(?:\s+[a-zA-Z]+)* 部分匹配零个或多个后续出现的 1+ 个空格和 1+ 个 ASCII 字母。