我正在尋找一個正則表達式,將從一個巨大的文本文件/文件中排除下面的單詞。正則表達式不包含某些詞
@author
@Autowired
@Override
@param
@SuppressWarnings
我已經嘗試過,但沒有按預期工作。
@[^(author)(Autowired)(Override)(param)(SuppressWarnings)].*
我正在尋找一個正則表達式,將從一個巨大的文本文件/文件中排除下面的單詞。正則表達式不包含某些詞
@author
@Autowired
@Override
@param
@SuppressWarnings
我已經嘗試過,但沒有按預期工作。
@[^(author)(Autowired)(Override)(param)(SuppressWarnings)].*
嘗試使用以下正則表達式(使用negative look-ahead):
@(?!author|Autowired|Override|param|SuppressWarnings).*
暹羅:非常感謝,感謝您的幫助。 – Viswa
可以使用負前瞻:
@(?!author|Autowired|Override|param|SuppressWarnings)\S+
基本上,它尋找一個@
即而不是後跟該單詞列表,然後它匹配之後的任何非空白字符。
非常感謝,感謝您的幫助。 – Viswa
要翻轉腳本,如果你實際上是試圖把文本文件和刪除事情是在你的關鍵字列表,你可能會想找到使用語法的更多類似這樣的:@(author|AutoWired|Override|param|SuppressWarnings)\b
。終端\b
只是避免@權限或其他不可能性的預防措施。
正則表達式中的方括號用於字符類。當您將方括號中的字符列表放入時,其中一個字符就是列出的字符之一。所以
[author]
匹配一個字符,如果是a
,h
,o
,r
,t
,或者u
。它不尋找單詞author
。在前面把^
也尋找一個字符不在列表:
[^author]
一個字符,只要它不是a
,h
,o
,r
,t
,或者u
匹配。
但這裏關鍵的是[]
不能用於匹配單詞或其他序列。在你的榜樣,
@[^(author)(Autowired)(Override)(param)(SuppressWarnings)].*
方括號中的第一部分字符不能匹配(
,a
,u
,或任何出現在方括號(其中許多人物多次出現其他字符,但這不會影響任何東西)。
爲什麼標記爲'javascript'? – shmosel
@Viswa shmosel有一個很好的觀點......要正確回答這個問題,我們確實需要知道你使用的是什麼語言。如果您正在編寫一個Node.js程序來處理Java源代碼,那麼您應該只有「javascript」標記。如果你正在編寫一個Java程序,你應該有「java」標籤。它有所不同,因爲有些語言支持正則表達式功能,而不是其他語言。 – ajb