使用 Java
我不是正则表达式的常客,在将 springmodules-validation 内容迁移到最新版本的过程中,我遇到了以下正则表达式。
^[a-zA-Z0-9 "'&!#$%()*+,-./:;?@[\\]^_`{|}~]+$
这究竟是在做什么?我需要了解这一点才能为此验证编写单元测试。顺便说一句,我在 Java 项目中使用它。
更有趣的事情是,我尝试了以下表达式hibernate-validator
:
@Pattern(regexp = "^[a-zA-Z0-9 "'&!#$%()*+,-./:;?@[\\]^_`{|}~]+$")
然后我的 intellijIDEA 在行尾显示一个错误,说Unclosed character class。正则表达式是否正确形成?
更新
似乎表达式格式错误,我在尝试测试时看到以下异常:
java.util.regex.PatternSyntaxException: Unclosed character class near index 57
^[a-zA-Z0-9 "'&!#$%()*+,-./:;?@[\]^_`{|}~]+$
这是我尝试迁移的一个 xml 文件的原始表达式:
<regexp apply-if="creativeType == 'Text'" expression="^[a-zA-Z0-9
"'&!#$%()*+,-./:;?@[\\]^_`{|}~]+$"/>
我错过了什么吗?
工作解决方案
regexp = "^[a-zA-Z0-9 \"'&!#$%()*+,-./:;?@\\[\\]^_`{|}~]+$"
通过这种方式,我将它分配给了一个字符串,这对我来说非常有用,谢谢大家!