单字母的正则表达式无法识别

时间:2015-06-23 09:02:27

标签: java regex

我有正则表达式

(function (){
    var parent = document.getElementById("MediaCategory");

    for (var i=0; i<parent.children; i++){
        if (parent.children[i].text === "Archive") {
            parent.removeChild(parent.children[i]);
            break;
        }
    }
})();

我的意图是识别一个单词

  • 可能只包含特殊字符
  • 可能仅包含字词
  • 可能包含特殊字符和单词
  • 可以有单个字母。
  • 不应标识空格或标签

以上3个条件正在运作,但我的第4个条件不起作用。有人可以帮忙吗?

3 个答案:

答案 0 :(得分:1)

[^\s]+

这应该为你做。

\s match any white space character [\r\n\t\f ]

答案 1 :(得分:0)

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

[^\t\p{Zs}]+

请参阅IDEONE Demo

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));
}

答案 2 :(得分:0)

你只使用 [^\s\t\n]+它将所有单个字符识别为多个字符而不用(\ s =空格,\ t = tab,\ n =输入键)