正如标题所说,我需要在一个句子中找到两个特定的单词.但它们可以是任何顺序和任何外壳.我如何使用正则表达式执行此操作?
例如,我需要提取单词,test并long从下面的句子中提取单词test是第一个还是long来自.
This is a very long sentence used as a test
Run Code Online (Sandbox Code Playgroud)
更新:我在第一部分中没有提到的是它也需要不区分大小写.
vel*_*lop 37
您可以使用
(?=.*test)(?=.*long)
Run Code Online (Sandbox Code Playgroud)
来源:MySQL SELECT LIKE或REGEXP匹配一条记录中的多个单词
我认为(总是危险的)你想找到整个单词,所以"test"会匹配,但"testy"不会.因此模式必须搜索字边界,所以我使用"\ b"字边界模式.
/(?i)(\btest\b.*\blong\b|\blong\b.*\btest\b)/
Run Code Online (Sandbox Code Playgroud)
小智 7
如果要提取匹配项,请使用捕获组:(测试)|(长)然后,根据使用的语言,您可以使用$ 1和$ 2来引用匹配的组.
不知道什么语言
/test.*long/
Run Code Online (Sandbox Code Playgroud)
要么
/long.*test/
Run Code Online (Sandbox Code Playgroud)
要么
/test/ && /long/
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
54135 次 |
| 最近记录: |