这个正则表达式做了什么?常规

时间:2013-06-25 09:49:46

标签: regex grails groovy

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

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

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

任何提示,提前谢谢

1 个答案:

答案 0 :(得分: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-.()_&]匹配上述四个选项中的任何一个字符 最后的+表示“一个或多个”。

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

的Unicode版本