我必須檢查字符串,以便字符串可以包含字母數字字符和/或下劃線(_)。我在下面的Java中編寫了模式表達式。但它似乎並不奏效。正則表達式錯誤在哪裏?
String pattern = "(\\w*)(_*)(\\d*)";
匹配串的實施例是hello123_,hi_12hello,bhushu,12_,23等 推薦上的圖案表達的變化。
我必須檢查字符串,以便字符串可以包含字母數字字符和/或下劃線(_)。我在下面的Java中編寫了模式表達式。但它似乎並不奏效。正則表達式錯誤在哪裏?
String pattern = "(\\w*)(_*)(\\d*)";
匹配串的實施例是hello123_,hi_12hello,bhushu,12_,23等 推薦上的圖案表達的變化。
您當前的模式相匹配,從[A-Za-z0-9_]
所以它適用於任何的隨後你給的例子,因爲這裏的第一點匹配它們,其他的可以是空的。從當前的表達
String pattern = "[A-Za-z0-9_]*";
或
String pattern = "\\w*";
即僅僅是第一組:
但是,您可以更簡單地作爲表達模式。
查看Javadoc的Pattern。
@RealSkeptic done –
這兩個正則表達式都匹配空字符串,這也可能導致意外的結果。也許'\\ w +「'會更有意義,取決於OP實際上想做什麼...... –
@TimPietzcker同意了,但是由於OP沒有滿足他的確切要求...... –
「請求我們推薦或查找圖書,工具,軟件庫,教程或其他場外資源的問題與Stack Overflow無關」 –
請給出一些您想要匹配的字符串示例,以及你不想匹配的字符串。 –
只需測試'\\ w',它包含'\\ d'和'_'。 –