Java 表达式在直接在代码中声明时有效,但在从 Spring 注入(inject)加载时无效

标签 java regex dictionary

我的问题是我有一个表达式可以评估给定的用户密码,以验证它是否制作精良。我的表情是这样的:

"((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{6,20})"

嗯,我的问题是,当我直接使用 string.matches() 方法放置这个字符串时,它会与密码一起使用,但是如果我将它放在 Spring 注入(inject)的映射中,就像那样

<map>
<entry key="PASSWORD_FILTER_EXPRESSION" value="((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{6,20})" />
</map>

并使用它从这里加载它不起作用。我一直在调试,显然它在两个地方都使用相同的字符串,问题出在哪里?

最佳答案

转义斜线:

"((?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{6,20})"

关于Java 表达式在直接在代码中声明时有效,但在从 Spring 注入(inject)加载时无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9399349/

相关文章:

java - 如何对文本文件中的记录进行排序并存储为二进制文件?

java - 无法使用 PDFBox 使用 main() 中的单独方法将页面添加到 PDF

python - 替换字符串中除第一个以外的所有出现

regex - 如何在没有积极前瞻的情况下重写正则表达式?

python - 将 re.findall 创建的列表拆分为单个单词,然后计算每个单词的出现次数,按出现次数降序排列

python - Django 渲染字典性能

python - 比较字典的值并返回匹配值的计数

java - 如何获取指定按键的按下和释放事件?

java - 从 jar 加载 .so 文件

Python:列出字典,替换某些值