簡體   English   中英

正則表達式,如何查找包含兩個指定單詞的行?

[英]Regex, how to find lines that contain both specified words?

如何查找包含兩個指定單詞的行 - 使用 Regex 模式?

例如,我需要查找包含“MExp”和“聚合”兩個詞的行。

謝謝。

那么,“兩個詞”等同於“word1...word2”或“word2...word1”:

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

或者,根據您的環境/宿主語言,只需使用兩個正則表達式,例如 JavaScript:

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

或使用grep

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

假設您有一個文件。

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

匹配 1 個單詞: \b(Aggregate)\b 如果您不必非常高效,那么我會測試 2 次。

此工具也可用於快速生成正則表達式: regex generator

我無法對此進行進一步研究,但是這個主題可能會幫助您結合單詞搜索。

祝你好運; ;)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM