正则表达式匹配字符串中的两个单词

时间:2016-07-28 18:54:13

标签: regex

我正在尝试匹配(查找)字符串中的两个单词,如下所示:

Mac OS X/10.11.5 (15F34); ExchangeWebServices/6.0 (243);

如果我们看到“Mac”和“ExchangeWebServices”,我想匹配(true),但两个单词之间的字符将是未知/随机的。有人可以用正则表达式语法帮助我吗?

谢谢!

3 个答案:

答案 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,如上面的答案所述。