我正在尝试使用正则表达式匹配特定字符串后的第一个单词,并且一直在努力使所有实例都正常工作。假设我有2个字符串:
Site Code: foobar
Site Code: hello-world
现在,使用(?<=\bSite Code:\s)(\w+)
返回foobar
这是正确的,但只在我需要hello
时返回hello-world
。
因此,我将表达式更改为(?<=\bSite Code:\s)(\w+)(-\w+)
以便拾取带连字符的单词,但现在它忽略了非连字符的单词。
有没有办法从同一个表达式同时获取foobar
和hello-world
?
答案 0 :(得分:2)
试试这个(?<=\bSite Code:\s)(\S+)
如果没有更详细的要求,很难给出确切的答案。 上面的正则表达式应匹配特定字符串“Site Code:”之后的所有非空格字符。
答案 1 :(得分:1)
试试这个正则表达式:
(?<=\bSite Code:\s)([-\w]+)
#\w only include the range [A-Za-z0-9_] in ascii mode.