2010-11-25 2 views
2

Я пытаюсь определить шаблон регулярного выражения с отрицанием внутри шаблона. Я хочу исключить все строки с помощью «Test» в конце. Я знаю об отрицании характера [^Test], но это не то, что я ищу, [^Test] равно [^estT]. Он должен проходить для строк, таких как UserService, а не для UserServiceTest. Так что я сделал это, чтобы исключить это с помощью {min,max}. но он не работает :(.regex negation в шаблоне

^([a-zA-Z0-9]+(Test){0,0})$ 

Мое происхождение Идея заключается в том, чтобы поместить эту модель в конфигурацию Checkstyle подавляет, и исключить все тестовые классы от Checkstyle проверки.

<module name="TreeWalker"> 
    <property name="tabWidth" value="4"/> 
    <module name="TypeName"> 
    <property name="format" value="([a-zA-Z0-9]+(Test){0,0})"/> 
    </module> 
</module> 

ли кто-нибудь знает, как я могу решить эту проблему?

Приветствия,

Кевин

ответ

6

Вам необходимо использовать negative lookbehind assertion.

^([a-zA-Z0-9]+(?<!Test))$ 

Обратите внимание, что не все двигатели регулярного выражения поддерживают lookbehind.

+0

Круто! Благодаря :) – eglobetrotter 2010-11-25 11:28:28

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