如何使用正则表达式来匹配单个单词字符串和带连字符的字符串



我正在尝试使用正则表达式匹配特定字符串后的第一个单词,并且一直在努力使所有实例正常工作。假设我有 2 个字符串:

Site Code: foobar

Site Code: hello-world

现在,使用 (?<=bSite Code:s)(w+) 返回foobar这是正确的,但仅在我需要hello-world时才返回hello

因此,我将表达式更改为(?<=bSite Code:s)(w+)(-w+)以拾取带连字符的单词,但现在它忽略了非连字符的单词。

有没有办法从同一个表达式中获取foobarhello-world

试试这个(?<=bSite Code:s)(S+)

如果没有关于要求的更多细节,很难给出确切的答案。上面的正则表达式应匹配特定字符串"站点代码:"之后的所有非空格字符。

试试这个正则表达式:

(?<=bSite Code:s)([-w]+)
#w only include the range [A-Za-z0-9_] in ascii mode.

最新更新