【发布时间】:2012-05-09 17:57:41
【问题描述】:
我正在尝试编写一个正则表达式来处理 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");
令人困惑。
【问题讨论】:
标签: java regex pattern-matching whitespace