2011-12-08 180 views
-2

Java的正則表達式我用正則表達式來檢查字符串:對雙引號

String a = "ABC(hello) or DEF("indianbatsmen") or GHK(welcome); 

在這裏,我將不得不檢查現場DEF有雙引號或沒有。

我試着用:

if(!a.contains("DEF(\"w\")")){ }

它沒有工作。

+0

爲什麼你必須使用正則表達式? – mcfinnigan

+0

這個問題很糟糕,標題根本不相關。它會受益於從我這裏得到的一個好評,直到這個問題得到解決。 – Romain

回答

2

試試這個:

boolean foundMatch = false; 
Pattern regex = Pattern.compile("\\bDEF\\(\"[^\"]+\"\\)\\s+"); 
Matcher regexMatcher = regex.matcher(subjectString); 
foundMatch = regexMatcher.find(); 

不,這失敗如果你的字符串包含轉義的引號。

+0

我會提供同樣的方式。由於String.contains()與RegEx沒有任何關係,因此它會在沒有RegEx編譯的情況下將給定的charSeq搜索到字符串中。 – Thargor

0

看起來你已經嘗試使用正則表達式語法與\w - 但你可能想要的是\w+(如果您需要在引號之間至少有一個字符)\w*或者(如果允許0或多個字符)。您還需要使用\(來避開括號。

接下來,您只需要使用正則表達式方法。 .contains只是做一個簡單的字符串搜索。使用PatternMatcher類將在這裏幫助。