【问题标题】:SPeL Regular expression that returns substring rather than boolean valueSPeL 正则表达式返回子字符串而不是布尔值
【发布时间】:2016-01-06 09:16:39
【问题描述】:

有没有办法将 SPeL 表达式作为返回源字符串的匹配子字符串而不是它是否包含正则表达式?

例如,

<property name="emailValid" 
          value="#{user.email matches '^[_A-Za-z0-9-]+(.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(.[A-Za-z0-9]+)*(.[A-Za-z]{2,})$'}"/>

如果 user.email 与正则表达式匹配,将返回布尔值

但是我正在寻找的是类似的东西 (如果test.url="helloworld/iwantthispart"

<property name="theNewSubstring" 
              value="#{test.url imaginaryMethod '[^\/]+$'}"/>

然后属性thenNewSubstring 将等于iwantthispart

如果框架中有任何我不知道的宝石,我也在使用 Spring。

【问题讨论】:

    标签: java regex xml spring javabeans


    【解决方案1】:

    不幸的是,在spring Expression languate中只有str>、=、

    你可以在spring xml代码中这样写:

    boolean value = parser.parseExpression("T(java.util.regex.Pattern).compile('.*').matcher('abc').matches()").getValue(Boolean.class);
    

    或者从匹配器中提取你需要的组。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-26
      • 1970-01-01
      • 2021-07-12
      • 2011-10-17
      • 1970-01-01
      • 1970-01-01
      • 2012-04-30
      • 1970-01-01
      相关资源
      最近更新 更多