Регулярное выражение, соответствующее набору строк - PullRequest
2 голосов
/ 06 марта 2012

Мне нужно сопоставить набор строк в Java.Эта строка может содержать самозавершающийся HTML, один или несколько пробелов и один или несколько   s.

Например:

String html = "<p>Stack Overflow is a great site. I really like Stack<br/>Overflow. Stack&nbsp;&nbsp;Overflow has helped me a lot to learn different things. I frequently visit Stack<br></br>Overflow. Stack<div id=\"XX\" />Overflow is really nice.<p><br/><p>Stack and overflow are two different thing.</p>".

Теперь мне нужно регулярное выражение, которое будет соответствоватьследующие строки в приведенной выше строке.

 1. Stack Overflow 
 2. Stack<br/>Overflow
 3. Stack&nbsp;&nbsp;Overflow
 4. Stack<br></br>Overflow
 5. Stack<div id=\"XX\" />Overflow

Но это не должно совпадать

  • Стек и переполнение

Ответы [ 2 ]

1 голос
/ 06 марта 2012
stack(<.*?>|&nbsp;|\s)*overflow
1 голос
/ 06 марта 2012

Если я правильно понимаю ваш вопрос, вы ищете совпадение со «стеком», за которым следует «переполнение», и между ними может быть необязательный текст. Если это то, что вы хотите, как об этом:

(?i)stack.*?overflow

Это не будет вести себя очень хорошо, если ваша входная строка содержит "стек", но не соответствует "переполнению".

Вы можете узнать больше о синтаксисе регулярных выражений Java @ http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html

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