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

时间:2015-03-22 09:22:53

标签: regex import.io

在使用xpath

选择后使用正则表达式匹配某些文本

例如Huntsville, Alabama 11111

我只想要Alabama,它总是以逗号后出现 我使用[^,]*$来获取逗号后的文字 但我似乎无法找到排除数字或仅返回字母的方法

当我想在逗号后使用[^[0-9],]*$获取数字时的另一个例子 但当我试图用其他任何东西调整它时,它只返回数字或什么也没有。

2 个答案:

答案 0 :(得分:7)

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

说明:

?<= =&gt; lookbehind匹配字符串但不包含在捕获组中

,\s* =&gt;匹配逗号后跟0或更多空格

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

HTH

答案 1 :(得分:0)

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

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

请参阅regex demo

<强>详情

  • [a-zA-Z]+ - 一个或多个ASCII字母
  • (?=[^,]*$) - 其次是除,以外的0 +字符,直到字符串结尾。

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

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

请参阅this regex demo

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