只匹配逗号后没有数字的字母
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]+)*(?=[^,]*$)
^^^^^^^^^^^^^^^^^
(?:\s+[a-zA-Z]+)*
部分匹配零个或多个后续出现的 1+ 个空格和 1+ 个 ASCII 字母。
我在使用 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]+)*(?=[^,]*$)
^^^^^^^^^^^^^^^^^
(?:\s+[a-zA-Z]+)*
部分匹配零个或多个后续出现的 1+ 个空格和 1+ 个 ASCII 字母。