2015-10-08 2 views
1

Есть ли способ как выражение SPeL, которое возвращает соответствующую подстроку исходной строки, а не если она содержит регулярное выражение?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, если есть какие-то драгоценные камни в рамках, о которых я не знаю.

ответ

1

К сожалению, весной Expression languate there str only>, <,> =, < =, instanceOf, совпадения и между операторами.

Вы можете написать в весеннем коде XML, как:

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

Или экстракт группы, что вам нужно от согласовани.

Смежные вопросы