我正在尝试匹配(查找)字符串中的两个单词,如下所示:
Mac OS X/10.11.5 (15F34); ExchangeWebServices/6.0 (243);
如果我们看到“Mac
”和“ExchangeWebServices
”,我想匹配(true),但两个单词之间的字符将是未知/随机的。有人可以用正则表达式语法帮助我吗?
谢谢!
答案 0 :(得分:6)
这将完全匹配单词“Mac”和“ExchangeWebServices”与它们之间的任何其他内容:
\bMac\b.*\bExchangeWebServices\b
Regex 101示例:https://regex101.com/r/sK2qG1/4
答案 1 :(得分:0)
这是一个简单的正则表达式,可以通过
获得/^Mac.+ExchangeWebServices/
我们假设'Mac'和'ExchangeWebServices'是由两个字符分隔的两个不同的单词。
您可以点击该链接了解更多正则表达式 Learning Regular Expressions
答案 2 :(得分:0)
通过这种正则表达式,即使单词长于正则表达式中的单词,您也可以找到单词及其之间的任何内容:
(Mac).*?(ExchangeWebServices).*?
它将找到以下字符串:
Mac OS X/10.11.5 whatever text in between (15F34); ExchangeWebServices/6.0 (243);
因此,如果您写的单词不带结尾(ExchangeWebServ):
(Mac).*?(ExchangeWebServ).*?
它将找到两个字符串:
Mac OS X/10.11.5 whatever text in between (15F34); ExchangeWebServices/6.0 (243);
并且:
Mac OS X/10.11.5 whatever text in between (15F34); ExchangeWebServ/6.0 (243);
如果您需要精确匹配单词,则需要使用\b
,如上面的答案所述。