Java 带有单字母的正则表达式不能识别

Java 带有单字母的正则表达式不能识别,java,regex,Java,Regex,我有一个正则表达式 [\w\W][^\s]+ 我的意图是识别一个词 只能包含特殊字符 只能包含单词 可能包含特殊字符和单词 可以有一个字母 不应标识空格或制表符 以上三种情况都正常,但我的第四种情况不正常。有人能帮忙吗 [^\s]+ 这应该对你有用 \s匹配任何空白字符[\r\n\t\f]您可以使用否定类,该类允许使用除制表符或空格以外的任何1个或多个字符: [^\t\p{Zs}]+ 见: 您只使用[^\s\t\n]+它将所有单个字符识别为多个字符,而不使用(\s=space、\t=

我有一个正则表达式

[\w\W][^\s]+ 
我的意图是识别一个词

  • 只能包含特殊字符
  • 只能包含单词
  • 可能包含特殊字符和单词
  • 可以有一个字母
  • 不应标识空格或制表符
以上三种情况都正常,但我的第四种情况不正常。有人能帮忙吗

[^\s]+
这应该对你有用


\s匹配任何空白字符[\r\n\t\f]

您可以使用否定类,该类允许使用除制表符或空格以外的任何1个或多个字符:

[^\t\p{Zs}]+
见:


您只使用
[^\s\t\n]+
它将所有单个字符识别为多个字符,而不使用(\s=space、\t=tab、\n=enter key)

如果您不知道它们,则可以使用诸如和之类的工具来调试正则表达式。
String str = "Your string here";
String rx = "[^\t\\p{Zs}]+";
Pattern ptrn = Pattern.compile(rx);
Matcher m = ptrn.matcher(str);
while (m.find()) {
   System.out.println(m.group(0));
}