2014-01-25 19 views
-3

關鍵字和字符串我在尋找有開始以字母后面有一個字母或字符或什麼關鍵字正則表達式和java忽略內部報價

事情我要找:X,X,XX等

正則表達式我已經是[A-ZA-Z] [A-ZA-Z0-9] + | [A-ZA-Z]

我需要忽略的詞語,如INT,寫,讀等,不知道如何實現

如果它遇到一個帶引號的字符串,我需要它忽略無論在報價中是什麼?

有幫助嗎?

在此先感謝。

+0

你知道'x'在'a-z'之間嗎? – csmckelvey

+0

我覺得這有點誤導,所以我編輯它。是X1 X是我正在尋找的關鍵詞之一。 –

+0

我很高興你清除了這個:)我害怕了一分鐘。 – csmckelvey

回答

2

你的問題不清楚給我。如果您想接受以字母開頭的單詞,並繼續使用字母或數字(或下劃線);但是從列表中排除的話,你可以使用正則表達式:

(?!\b(?:INT|WRITE|READ)\b)\b[A-Za-z]\w*\b 

如果,而不是一個列表,你想排除全部由大寫字母的單詞,然後嘗試:

(?!(?:\b[A-Z]+\b))\b[A-Za-z]\w*\b 

在Java中,我相信你需要加倍的反斜槓的元字符,所以它可能是這樣的:

"(?!\\b(?:INT|WRITE|READ)\\b)\\b[A-Za-z]\\w*\\b" 

如果你也想引號內排除的字符串,你可以使用類似:

"[^"]+"|((?!\b(?:INT|WRITE|READ)\b)\b[A-Za-z]\w*\b) 

,然後檢查,看看是否有內捕獲組1什麼這不會包括由雙引號劃定的短語。

另一種選擇是將所有您不想要的參數替換爲無 - 單詞列表以及引用文字。在Java中,類似於:

String resultString = subjectString.replaceAll("\"[^\"]*\"|\\b(?:WRITE|INT|READ)\\b", ""); 
+0

是的,你是對的。第一個答案是我正在尋找的,但它不起作用。當我由於某種原因將其放入我的程序時出現錯誤 –

+0

您在程序中嘗試了什麼?你得到的錯誤是什麼? –

+0

你做了什麼關於反斜槓,它的工作非常感謝它。你能向我解釋你寫的是怎麼回事? –