我想写一个正则表达式马赫的IRC PRIVMSG字符串。 它是这样的:
:nick!name@some.host.com PRIVMSG #channel :message body
所以我写了下面的代码:
Pattern pattern = Pattern.compile("^:.*\\sPRIVMSG\\s#.*\\s:");
Matcher matcher = pattern.matcher(msg);
if(matcher.matches()) {
System.out.println(msg);
}
这是行不通的。 我没有火柴。 当我使用网上的JavaScript测试仪测试正则表达式,我得到了比赛。
我试图找出原因,为什么它不工作,我发现有一些错误的空格符号。 下面的模式会给我一些比赛:
Pattern.compile("^:.*");
但随着\模式S不会:
Pattern.compile("^:.*\\s");
这是令人困惑的。