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

h9a6wy2h  于 2023-02-05  发布在  其他
关注(0)|答案(4)|浏览(174)

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

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

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

4ngedf3f

4ngedf3f1#

这将完全匹配单词“Mac”和“ExchangeWebServices”以及它们之间的任何其他内容:

\bMac\b.*\bExchangeWebServices\b

正则表达式101示例:https://regex101.com/r/sK2qG1/4

8xiog9wr

8xiog9wr2#

这是一个简单的正则表达式可以得到的

/^Mac.+ExchangeWebServices/

我们假设“Mac”和“ExchangeWebServices”是由某个字符分隔的两个不同的单词。
你可以跟随链接学习更多的正则表达式Learning Regular Expressions

kqqjbcuj

kqqjbcuj3#

使用此正则表达式,您可以找到单词以及其间的任何内容,即使单词比正则表达式中的单词长:

(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

oknwwptz

oknwwptz4#

(苹果|banana)也将匹配“applebanana”...请尝试以下操作:
(\b苹果\b|\b香蕉\b)
这将匹配整个单词apple或整个单词banana,但不匹配applebanana或bananaapple

相关问题