2012-09-19 66 views
0

也許有人可以用正則表達式來幫助我。這一次不會工作:之前和之後正則表達式不會工作

安東OR 一個NTON或 安東

public static void main(String[] args){ 
    String pattern = "(?i).*a[\\s-\\.]?nton.*"; 
    String text = "a-nton vom 27.2.2012"; 
    if (pattern.matches(text)){ 
     System.out.println("FOUND"); 
    }else{ 
     System.out.println("NOT FOUND"); 
    } 
} 

如果文本包含這些詞的正則表達式應該是真實的這個詞可以是任何文字

但是上面的模式將是「未找到」

回答

4

更改if (pattern.matches(text)) {if (text.matches(pattern)) {。用於圖案傳遞到方法,從而調用它上的文本並把它傳遞圖案

在的字符串中的匹配方法檢查調用上。如果您希望將來使用更高級的正則表達式,則可能還需要查看PatternMatcher類。

見關於matches(String)方法的Javadoc:

參數:正則表達式 - 正則表達式到該字符串是 匹配

+0

此外,字符類應該是'[\\小號.-]'。我很驚訝,試圖建立\ s'和'.'不會拋出'PatternSyntaxException' ... –

+0

謝謝'之間的範圍!但現在我得到一個java.util.regex.PatternSyntaxException:(?I)。?。附近指數非法字符範圍13 * A [\\秒 - \\] * NTON – Mike