如何为以下场景创建正则表达式?

时间:2012-05-25 08:25:31

标签: regex grails groovy

我目前正在使用正则表达式构建我的匹配项。我想接受字母数字和特殊字符,例如句点(。),逗号(,)和破折号( - )。这是我的代码:

code nullable: false, blank: false, maxSize: 30, matches : /^[0-9a-zA-Z,.-]+?[0-9a-zA-Z ]+?[0-9a-zA-Z,.-]*?$/

此代码工作正常,但每次我输入单个字母和一个指定的特殊字符的组合时,都会抛出错误消息。

示例:

1) A. (an error is thrown)
2) A- (an error is thrown)
3) A, (an error is thrown)

以上示例应该是有效输入。我将如何减少我的正则表达式以允许给出示例?

1 个答案:

答案 0 :(得分:2)

A.[0-9a-zA-Z,.-]+?匹配,但中间部分[0-9a-zA-Z ]+?与任何内容都不匹配。

要匹配字母数字和句号,逗号和破折号,/^[0-9a-zA-Z,.-]+$/就足够了。