отрицание регулярного выражения в шаблоне - PullRequest
2 голосов
/ 25 ноября 2010

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

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

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

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

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

Приветствия

Кевин

Ответы [ 2 ]

6 голосов
/ 25 ноября 2010

Вам необходимо использовать отрицательное утверждение с обратным взглядом .

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

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

2 голосов
/ 21 января 2011

а как же

[a-zA-Z0-9]+[^(Test)]
...