如何找到包含两个指定单词的行-使用正则表达式模式?例如,我需要查找行,而不是同时包含单词"MExp"和"Aggregate"。谢谢你。
nhjlsmyf1#
假设您有一个文件。
abcde fghijk MExp lmnopq Aggregate fghijk MExp Aggregate lmnopq fghijk Aggregate lmnopq MExp fghijk Aggregate MExp lmnopq xywz
如果单词的顺序不相关,则正则表达式为(MExp.*Aggregate)|(Aggregate.*MExp)如果顺序很重要,请仅使用适用的顺序。MExp.*Aggregate或Aggregate.*MExp
(MExp.*Aggregate)|(Aggregate.*MExp)
MExp.*Aggregate
Aggregate.*MExp
piah890a2#
好吧,"both words"相当于"单词1.............................................................................................................................................................................................................................................
(word1.*word2)|(word2.*word1)
或者,根据您的环境/主机语言,简单地使用两个正则表达式,例如JavaScript:
if (line.test(/word1/) && line.test(/word2/)) { // both words }
或与grep:
grep
<line.txt grep 'word1' | grep 'word2'
f87krz0w3#
要匹配1个单词:\b(Aggregate)\b。如果你不需要超级高效,那么我会测试2次。这个工具对于快速生成正则表达式也很有用:regex generator我不能进一步研究这一点,但这个主题可能会帮助你结合单词搜索。祝你好运!)
\b(Aggregate)\b
3条答案
按热度按时间nhjlsmyf1#
假设您有一个文件。
如果单词的顺序不相关,则正则表达式为
(MExp.*Aggregate)|(Aggregate.*MExp)
如果顺序很重要,请仅使用适用的顺序。
MExp.*Aggregate
或Aggregate.*MExp
piah890a2#
好吧,"both words"相当于"单词1.............................................................................................................................................................................................................................................
或者,根据您的环境/主机语言,简单地使用两个正则表达式,例如JavaScript:
或与
grep
:f87krz0w3#
要匹配1个单词:
\b(Aggregate)\b
。如果你不需要超级高效,那么我会测试2次。这个工具对于快速生成正则表达式也很有用:regex generator
我不能进一步研究这一点,但这个主题可能会帮助你结合单词搜索。
祝你好运!)