我需要在Java中匹配一组字符串。此字符串可以包含自结束HTML,一个或多个空格以及一个或多个
s。
例如:
String html = "<p>Stack Overflow is a great site. I really like Stack<br/>Overflow. Stack 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 Overflow
4. Stack<br></br>Overflow
5. Stack<div id=\"XX\" />Overflow
但它不应该匹配
答案 0 :(得分:1)
如果我正确理解你的问题,你希望匹配“stack”后跟“overflow”,并在它们之间允许一些可选文本。如果这是你想要的,那怎么样:
(?i)stack.*?overflow
如果您的输入字符串包含“stack”但没有相应的“溢出”,则表现不佳。
您可以了解有关java的正则表达式语法@ http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html
的更多信息答案 1 :(得分:1)
stack(<.*?>| |\s)*overflow