我在匹配汉字字符串时用到该串(<span[^>]*?title='([0-9]*[\s|\S]*[u4E00-u9FA5]*)'[\s|\S]*class='[a-z]*[\s|\S]*[a-z]*[0-9]*'),不过该串报错,查了一下,发现在Java中有反义字
符的说法,"\" 被解释为Unicode 转义或其他字符转义。所以必须在字符串字面值中使用两个反斜线, 表示正则表达式受到保护,才不会被 Java 字节码编译器解释。
即是说把字符匹配串里的所有的单反斜杠(\)换成双反斜杠(\\)就行了。我更改后(<span[^>]*?title='([0-9]*[\\s|\\S]*[u4E00-u9FA5]*)'[\\s|\\S]*class='[a-z]*[\\s|\\S]*[a-z]*[0-9]*')就没错了。