2013-01-05 128 views
0

我正在尋找一些Java正則表達式的解釋。我已閱讀並嘗試過不同的教程,但我的代碼不想工作。Java正則表達式找到字符串中的符號

String myString = "JKAE[JKk]jkhe{kjef}kaejf-aef_a|ef=kjef+kejf\akejf/efj:efa;aef'asd"fd,<ef>"; 

if(myString.matches(".*[\\[|]|\\{|\\}|-|+|\\\\|;|:|\\'|\\"|<|>|/")){ 
    log("something"); 
    return; 
} 

只允許使用字母數字字符,包括「。」。 [點] 符號不允許的:-_ = + \ | [{]} ;:'」,<>/

回答

3

這是一個有點很難說你想要什麼,所以這裏的兩個選項:

對於只有字母數字和點:

if (!myString.matches("[a-zA-Z0-9.]*") { 
    // contained an invalid character 
} 

要禁止的字符,你所列:

if (!myString.matches("[^-_=+\\\\|\\[{\\]};:'\",<>/]*") { 
    // contained an invalid character 
} 
+0

我認爲第一種方法是更優選 – Smit

+0

@smit我也這麼認爲 - 一個你可以閱讀* *噸。他該死的正則表達式!我只是不確定,因爲他提到了他*不想要的角色。如果他把這件事留在外面,第一個答案將是唯一明智的答案。 – Bohemian

+0

不應該是[a-zA-Z0-9 \\。]?只用。將是一個通配符 – Alex

相關問題