使用正则表达式的任何顺序的多个单词

正如标题所说,我需要在一个句子中找到两个特定的单词。但它们可以是任何顺序和任何外壳。如何使用正则表达式执行此操作?


例如,我需要提取单词,test并long从下面的句子中提取单词test是第一个还是long来自。


This is a very long sentence used as a test

更新:我在第一部分中没有提到的是它也需要不区分大小写。


aluckdog
浏览 990回答 4
4回答

慕无忌1623718

如果要提取匹配项,请使用捕获组:(测试)|(长)然后,根据使用的语言,您可以使用$ 1和$ 2来引用匹配的组。

潇湘沐

您可以使用(?=.*test)(?=.*long)

慕慕森

我认为(总是危险的)你想找到整个单词,所以“test”会匹配,但“testy”不会。因此模式必须搜索字边界,所以我使用“\ b”字边界模式。/(?i)(\btest\b.*\blong\b|\blong\b.*\btest\b)/

HUX布斯

不知道用什么语言 /test.*long/ 要么/long.*test/要么/test/ && /long/
打开App,查看更多内容
随时随地看视频慕课网APP