java - 如何用 spring 设置正则表达式字符串而不被转义?

标签 java regex spring

我使用 spring 来设置我的正则表达式

Spring :

<property name="regularExpressionAsString" value="(?&lt;!\\.TMP)\\Z" />

代码:

public void setRegularExpressionAsString(String regularEx) {
    this.regularExpression = Pattern.compile(regularEx);
}

这不能正常工作,当我调试我的 setter 时,我发现 spring 将\转义为\\有什么方法可以解决这个问题吗?

最佳答案

虽然没有回答您原来的问题:您是否考虑过直接将 setter 参数更改为 java.util.regex.Pattern? Spring 有一个PropertyEditor为此,您可以直接注入(inject)您的模式:

应用程序上下文:

<property name="regularExpression" value="(?&lt;!\.TMP)\Z" />

bean :

public void setRegularExpression(Pattern regularExpression) {
    this.regularExpression = regularExpression;
}

关于java - 如何用 spring 设置正则表达式字符串而不被转义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3459562/

相关文章:

java - 接受java代码作为用户输入

javascript - 使用正则表达式查找文本并仅获取其中的一部分

.net - 从正则表达式捕获组中找到最佳匹配

c# - 如何检查以 结尾的字符串是否有效?使用正则表达式

java - 在 EAR 项目的项目中运行 main

java - "Cached Item Was Locked"导致 Hibernate 中的 Select 语句

java - 使用 AsyncTask 时主线程出现网络错误

java - 两种方法具有相同的删除功能,但都不会覆盖对方

java.lang.NoSuchMethodError : org. springframework.util.ReflectionUtils.accessibleConstructor

java - Spring @Qualifier 不起作用,但 @Resource 起作用?