2013-07-12 7 views
0

Я новичок в регулярном выражении. У меня есть требование сопоставить строку в строке csv. Я могу сделать это, используя регулярную подстроку/startswith/endswith выражение EL, однако я хочу попробовать его с помощью regex. Любая помощь по этому вопросу будет очень заметной.Сопоставьте строку в csv, используя регулярное выражение

Мой CSV шаблон имени MyCSV: PAT, BAT, 924, EH, 23,5A, G12 Он может иметь CSV с любым алфавитно-цифровых символов. Моя строка с именем MyString бы любой из PAT или BAT или 924 и т.д. Я хочу, чтобы проверить, если туЗЬптд существуют в MyCSV

Я пытаюсь следующий код и он не работает. :(

<c:set var="myRegEx" value="([,]?)+${myString}+([,]?)" scope="page"/> 
<c:if test="${fn:containsIgnoreCase(myCSV , myRegEx)}"> 
// do stuffs 
</c:if> 

ответ

0

Символ «+» в регулярном выражении является квантор, это означает «один или более», так что вы используете его неправильно, то вы не должны сцепить, если это то, что вы пытаетесь Вы также должны использовать метод matches.

+0

Спасибо, я попытался использовать ([,]?) $ {MyString} ([,]?) Т.е. без «+», и это не сработало. – invisible

+0

@ user2187477 Здесь $ {myCSV == myRegEx} вы только проверяете, являются ли объекты одинаковыми, не используя регулярное выражение. – amaurs

+0

вы правы .. Я редактировал свой вопрос. – invisible

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