我必须检查字符串,以便字符串可以包含字母数字字符和/或下划线(_)。我在下面的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'和'_'。 –