Java正则表达式

San*_*hak 1 java regex matcher pattern-matching

我有一个下面的代码和平:

     Pattern p = Pattern.compile("^\\d|^\\W|^\\s");
     Matcher m = p.matcher("stack overflow");
Run Code Online (Sandbox Code Playgroud)

有人可以解释上面的正则表达式吗?它能做什么 ?我必须使它与现有功能之间不允许空格.例如,它不应允许"堆栈溢出",因为它包含空格.

编辑

我尝试的模式下面对我来说很好.谢谢大家的建议:

[a-zA-Z0-9_$#]
Run Code Online (Sandbox Code Playgroud)

Rob*_*bie 8

您的正则表达式匹配单个数字,或任何不是单词的单个字符或任何单个字符,即空白字符.

这三种选择中的任何一种必须从主题的开头开始,因为你^在每次交替中都有.

根据您的描述,我想你想要一个这样的表达式:

^[\w#$]+$
Run Code Online (Sandbox Code Playgroud)

哪个匹配任何包含一个或多个单词字符[A-Za-z0-9_],哈希#和美元的内容$.单词字符不包含空格,因此这应该有效.

我添加了锚点^,$并确保它只匹配整个字符串(这是你想要的吗?)如果你只想在开头匹配你的例子,那么删除$.

请注意,在您的示例中,您将需要\在您的Java代码中转义,如下所示:

Pattern p = Pattern.compile("^[\\w#$]+$");
Run Code Online (Sandbox Code Playgroud)