2015-03-03 41 views
-1

我有話的兩份名單,使用正則表達式匹配模式的Java

答:坑鍋大水slaptwo喘息,

B:PT鍋泥炭部分

我要創建一個正則表達式模式的對A列中的所有內容都返回true,對B列中的所有內容都返回false。我認爲我基本上對於正則表達式有一些誤解,因爲我所提出的一切最終會導致一個額外的錯誤,我不想要它。主要是我看不出如何禁止彼此相鄰的兩個元音。

這是我有:

public static void main(String[] args){ 
    String[] check = {"pit","spot","spate","slaptwo","respite","pt","Pot","peat","part"}; 
    Pattern p = Pattern.compile("([psr][^t(ea)][^r])\\w*"); 

    ArrayList<Matcher> M = new ArrayList<Matcher>(); 
    for (int i = 0; i < check.length; i++) { 
     M.add(p.matcher(check[i])); 
    } 

    for (int j = 0; j < M.size(); j++){ 
     System.out.println("Return Value:" +check[j] + "\t"+ M.get(j).matches()); 
    } 
} 

我現在明白了,(EA)不被理解爲一個事情,所以它引起的喘息是假的時,我不希望它,一切返回做正確的價值。正如我之前所說的,我需要知道如何禁止兩個元音彼此相鄰。或者如果我在這裏錯過了一些基本的東西?

+1

什麼是你期望的輸出? – 2015-03-03 02:02:20

回答

1

您不能在字符類中使用分組結構。

要拒絕「ea」,您可以在此處使用負向預覽。

[psr](?!ea)[^t][^r]\\w* 

Live Demo