1

我需要了解这个正则表达式的作用,但是阅读有关正则表达式的 groovy.codehaus 文档似乎对我没有帮助

matches: "[\\p{L}\\p{N}\\s-.()_&]+"

http://groovy.codehaus.org/Regular+Expressions

任何提示,提前谢谢

4

1 回答 1

5

首先,所有反斜杠都被转义,因此[\\p{L}\\p{N}\\s-.()_&]+被读作
[\p{L}\p{N}\s-.()_&]+.

[ ]是一个字符类,它匹配两个括号之间的任何内容,语法如下:

\p{L}匹配 Unicode 属性 L,字母
\p{N}匹配 Unicode 属性 N,数字
\s是任何空白字符
-.()_&?在字符类中没有特殊含义,因此可以按字面意思阅读

因此[\p{L}\p{N}\s-.()_&]匹配上述四个选项中的任何单个字符。
结尾的+意思是“一个或多个”。

基本上,它是 Unicode 版本[a-zA-Z0-9\s-.()_&]+或更短的版本[\w\s-.()&]+

于 2013-06-25T10:01:33.157 回答