Regex XML正则表达式

Regex XML正则表达式,regex,Regex,我试图构建一个正则表达式,它将与包含一些未编码数据的XML元素的内容相匹配。例如: <myElement><![CDATA[<p>The <a href="http://blah"> draft </p>]]></myElement> 草案]> 通常在这种情况下,我会使用 [^<]* 请不要这样做,但您可能正在寻找: <myElement>(.*?)</myElement> (*) 如

我试图构建一个正则表达式,它将与包含一些未编码数据的XML元素的内容相匹配。例如:

<myElement><![CDATA[<p>The <a href="http://blah"> draft </p>]]></myElement>
草案

]>
通常在这种情况下,我会使用

[^<]*
请不要这样做,但您可能正在寻找:

<myElement>(.*?)</myElement>
(*)
如果CDATA中可能出现
(或结束标记),则此选项不起作用。如果XML格式不正确,则此选项不起作用。它也不适用于嵌套的
s。列表还在继续

正确的解决方案是使用真正的XML解析器

您的
[^()]*
正则表达式说:匹配集合
中不存在的任意数量的字符。请不要这样做,但您可能正在寻找:

<myElement>(.*?)</myElement>
(*)
如果CDATA中可能出现
(或结束标记),则此选项不起作用。如果XML格式不正确,则此选项不起作用。它也不适用于嵌套的
s。列表还在继续

正确的解决方案是使用真正的XML解析器


您的
[^()]*
正则表达式说:匹配集合
中未包含的任意数量的字符如果您是逐行执行此操作,则如果您的示例:

>(.*)</
(*)草稿

]>

可能是这样使用的:

subjectString = '<myElement><![CDATA[<p>The <a href="http://blah"> draft </p>]]></myElement>';
Matcher regexMatcher = subjectString =~ ">(.*)</"
if (regexMatcher.find()) {
    String ResultString = regexMatcher.group();
} 
subjectString='草案

]]>;
Matcher regexMatcher=subjectString=~“>(.*)如果您是逐行执行此操作,那么如果您的示例:

>(.*)</
(*)草稿

]>

可能是这样使用的:

subjectString = '<myElement><![CDATA[<p>The <a href="http://blah"> draft </p>]]></myElement>';
Matcher regexMatcher = subjectString =~ ">(.*)</"
if (regexMatcher.find()) {
    String ResultString = regexMatcher.group();
} 
subjectString='草案

]]>; Matcher regexMatcher=subjectString=~“>(*)等等…哈哈,谢谢BoltClock…“要求正则表达式解析任意HTML就像要求Paris Hilton编写操作系统”等等…哈哈,谢谢BoltClock…“要求正则表达式解析任意HTML就像要求Paris Hilton编写操作系统”