2015-10-19 44 views
-2

我必須檢查字符串,以便字符串可以包含字母數字字符和/或下劃線(_)。我在下面的Java中編寫了模式表達式。但它似乎並不奏效。正則表達式錯誤在哪裏?

String pattern = "(\\w*)(_*)(\\d*)"; 

匹配串的實施例是hello123_,hi_12hello,bhushu,12_,23等 推薦上的圖案表達的變化。

+0

「請求我們推薦或查找圖書,工具,軟件庫,教程或其他場外資源的問題與Stack Overflow無關」 –

+0

請給出一些您想要匹配的字符串示例,以及你不想匹配的字符串。 –

+0

只需測試'\\ w',它包含'\\ d'和'_'。 –

回答

5

您當前的模式相匹配,從[A-Za-z0-9_]

    • 零個或多個字符,隨後是零個或多個下劃線
    • 零個或多個數字

    所以它適用於任何的隨後你給的例子,因爲這裏的第一點匹配它們,其他的可以是空的。從當前的表達

    String pattern = "[A-Za-z0-9_]*"; 
    

    String pattern = "\\w*"; 
    

    即僅僅是第一組:

    但是,您可以更簡單地作爲表達模式。

    查看Javadoc的Pattern

  • +0

    @RealSkeptic done –

    +0

    這兩個正則表達式都匹配空字符串,這也可能導致意外的結果。也許'\\ w +「'會更有意義,取決於OP實際上想做什麼...... –

    +1

    @TimPietzcker同意了,但是由於OP沒有滿足他的確切要求...... –