许多现代的 regex 实现将 \w
字符类的速记解释为“任何字母、数字或连接标点符号”(通常为: 下划线)。这样,像 \w+
这样的正则表达式匹配像 hello
、 élève
、 GOÄ_432
或 gefräßig
这样的单词。
不幸的是,Java 没有。在 Java 中,\w
仅限于 [A-Za-z0-9_]
。这使得像上面提到的那些匹配词很困难,还有其他问题。
\b
单词分隔符似乎也在不应该匹配的地方匹配。
正确的等价物是什么。在 Java 中类似 NET、支持 Unicode 的 \w
还是 \b
?还有哪些快捷方式需要“重写”才能支持 Unicode?