regex 正则表达式,如何找到包含两个指定单词的行?

ibps3vxo  于 2023-01-31  发布在  其他
关注(0)|答案(3)|浏览(131)

如何找到包含两个指定单词的行-使用正则表达式模式?
例如,我需要查找行,而不是同时包含单词"MExp"和"Aggregate"。
谢谢你。

nhjlsmyf

nhjlsmyf1#

假设您有一个文件。

abcde
fghijk MExp lmnopq Aggregate
fghijk MExp Aggregate lmnopq 
fghijk Aggregate lmnopq MExp 
fghijk Aggregate MExp lmnopq  
xywz

如果单词的顺序不相关,则正则表达式为
(MExp.*Aggregate)|(Aggregate.*MExp)
如果顺序很重要,请仅使用适用的顺序。
MExp.*AggregateAggregate.*MExp

piah890a

piah890a2#

好吧,"both words"相当于"单词1.............................................................................................................................................................................................................................................

(word1.*word2)|(word2.*word1)

或者,根据您的环境/主机语言,简单地使用两个正则表达式,例如JavaScript:

if (line.test(/word1/) && line.test(/word2/)) {
  // both words
}

或与grep

<line.txt grep 'word1' | grep 'word2'
f87krz0w

f87krz0w3#

要匹配1个单词:\b(Aggregate)\b。如果你不需要超级高效,那么我会测试2次。
这个工具对于快速生成正则表达式也很有用:regex generator
我不能进一步研究这一点,但这个主题可能会帮助你结合单词搜索。
祝你好运!)

相关问题