2012-09-06 24 views
2

我有許多文本文件,需要找到文件上下文中可能存在的某些單詞,但只需要用引號引起來的單詞。在雙引號之間的文本文件中找到一個特定的單詞

示例:僅在引號內(「搜索」一詞可能有所不同),請在下面的文本中查找「搜索」一詞。

1. text text text text text text search text 
2. text "search text text text text" text 
3. text "SEARCH text text text text" text 

對於這個精確的例子,我希望只有2號線和3

感謝的任何人的話誰可以幫我。你想雙引號之間的所有waords

+0

什麼語言或工具? – squiguy

+0

嗨squiguy。我想過使用記事本+ –

+0

這比你想象的要難得多,單獨使用正則表達式。考慮一下:「文本」文本文本「文本目標文本」文本文本「文本」文本「'。你和我可以計算公開/收盤的報價,並看到目標沒有被引用。但嘗試以一種普遍的方式向正則表達式引擎進行解釋,它將適用於所有可能的引用級別。 – DavidO

回答

2

如果你能保證以後還有隻有一組報價,那麼

/".*search.*"/i 

應該做的。但是,如果可以有多於一對引號,那麼你必須確保偶數報價的都已經過去了,免得你搞錯收盤報價開口報價:

/^[^"]*("[^"]*"[^"]*)*"[^"]*search[^"]*"/i 

這裏的a demo。 (請注意,演示包含\n是十足的演示。)如果你看到在演示正則表達式2個# S,請用括號() —替換它們它是RegexPal在URL編碼的數據的方式的限制。

0

我,我會簡單地使用grep

grep -E -o '".*"' inputfile 

I F只想要第一個字:

sed -E 's/.+"([[:alpha:]]+) .*/\1/' inputfile 
+0

他希望匹配的單詞,但只有在引號內。這將返回引號內的所有單詞。我會把它改成'grep -E -o -i'「word。*」'inputfile' – Kevin

相關問題