Как сопоставить "не" с большим количеством символов в шаблоне регулярных выражений Java? - PullRequest
3 голосов
/ 24 сентября 2010

в регулярном выражении Java, используйте [^x], чтобы сопоставить «not» с одним символом.

Я хочу знать, как сопоставить больше символов, не?это не правильно.

    String text="aa(123)bb(456)cc(789)dd(78)";
    text=text.replaceAll("\\([^789].*?\\)","");

    System.out.println(text);

я хочу получить результат:

aabbcc(789)dd

как исправить мой шаблон регулярного выражения?

спасибо большое:)

1 Ответ

7 голосов
/ 24 сентября 2010

Вы можете использовать негативный взгляд :

"\\((?!789\\)).*?\\)"

Пояснение:

\\(     Match a literal open parenthesis "("
(?!     Start negative lookahead
789\\)  Match literal "789)"
)       End lookahead
.*?     Match any characters (non-greedy)
\\)     Match a literal close parenthesis ")"

Если шаблон внутри отрицательного взгляда совпадает, то отрицательный взгляд не совпадает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...