我正在寻找一个正则表达式,它必须在不同类型的HTML标记之间提取文本。正则表达式提取HTML标记之间的文本
对于离:
<span>Span 1</span>
- O/P:跨度1
<div onclick="callMe()">Span 2</div>
- O/P:跨度2
<a href="#">HyperText</a>
- O/P:超文本
我发现这件特别的作品<([A-Z][A-Z0-9]*)\b[^>]*>(.*?)</\1>
m here但这一个不起作用。
我正在寻找一个正则表达式,它必须在不同类型的HTML标记之间提取文本。正则表达式提取HTML标记之间的文本
对于离:
<span>Span 1</span>
- O/P:跨度1
<div onclick="callMe()">Span 2</div>
- O/P:跨度2
<a href="#">HyperText</a>
- O/P:超文本
我发现这件特别的作品<([A-Z][A-Z0-9]*)\b[^>]*>(.*?)</\1>
m here但这一个不起作用。
您的评论显示您忽略了您的正则表达式字符串中的反斜杠。
如果你想匹配小写字母添加a-z
到字符类或使用Pattern.CASE_INSENSITIVE
(或添加(?i)
到正则表达式的开头)
"<([A-Za-z][A-Za-z0-9]*)\\b[^>]*>(.*?)</\\1>"
如果标签内容可能包含换行符,然后使用Pattern.DOTALL
或将(?s)
添加到正则表达式的开头以打开dotall/singleline模式。
一个非常特殊的方式:
(<span>|<a href="#">|<div onclick="callMe\(\)">)(.*)(</span>|</a>|</div>)
,但是,是的,这只会为那些3个实例工作。您需要使用HTML解析器。
的情况下可以与任何的HTML标签之间的内容。不能说。 – Sriram
请详细说明它是如何工作的。 – MikeM
我想引用你到这个问题的传说中最佳答案:http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags – Philipp
@MikeM它是不工作我的意思是,它没有给出预期的结果。它没有提取内容,而是显示整个HTML标签 – Sriram