regex - 时髦的 : RegEx for matching Alphanumeric and underscore and dashes

标签 regex grails groovy

我正在开发 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/

相关文章:

regex - 正则表达式 : Extract the lines

hibernate - 使用MS Sql Server 2008进行Grails/hibernate -有任何问题吗?

groovy - 如何使用 Groovy 添加 XML 属性?

grails - Spring Security和Grails-自定义URL

java - 将参数从 java 传递到 groovy

java - 需要帮助找出正确的正则表达式模式

php:如何使用掩码正则表达式交换字母

java - 使用正则表达式验证输入至少包含 2 个字母,允许特殊字符和普通字符

grails - 一个 Action 可以调用多个渲染吗

java - 具有元素数量限制的 Groovy .collect