我正在开发 Grails 1.3.6 应用程序。我需要使用正则表达式来查找匹配的字符串。
它需要查找字符串是否包含除字母数字字符或“-”或“_”或“*”以外的任何内容
示例字符串如下所示:
SDD884MMKG_JJGH1222
到目前为止,我想出的是,
String regEx = "^[a-zA-Z0-9*-_]+\$"
上面的问题是它不会在字符串的末尾或开头搜索特殊字符。
我必须在“$”之前添加一个“\”,否则会出现编译错误。
- Groovy:illegal string body character after dollar sign;
谁能推荐一个更好的 RegEx 来在 Groovy/Grails 中使用?
最佳答案
问题是字符类中间的未转义连字符。使用以下方法修复它:
String regEx = "^[a-zA-Z0-9*_-]+\$";
甚至更短:
String regEx = "^[\\w*-]+\$";
通过放置未转义的 -
在字符类的中间,您的正则表达式使其行为类似于 *
之间的范围(ASCII 42) 和 _
(ASCII 95),匹配此范围内的所有内容。
关于regex - 时髦的 : RegEx for matching Alphanumeric and underscore and dashes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28592462/