什么是正则表达式来检查空的XML节点?
问题描述:
我得到一个xml节点;什么是正则表达式来检查空的XML节点?
<p:FirstAddressLine1></p:FirstAddressLine1>
我想重写那个节点,如果它有一个空字符串/ null。我使用了^$
,但未能验证特定的xml节点是否包含空字符串。
任何人都知道,这里做错了什么?并使用正确的正则表达式?
答
我会使用类似如下的regex
(?:<p:FirstAddressLine1>(?!<\/p))
是使用Negative Lookahead
,并会匹配其次是其他然后</p
任何<p:FirstAddressLine1>
。如果它在第一个<>之后直接看到</p
>它将不匹配该字符串。
用法示例
use strict;
use warnings;
my @lines = <DATA>;
foreach (@lines) {
if ($_ =~ m/(?:<p:FirstAddressLine1>(?!<\/p))/) {
print "The string is NOT empty\n";
}
else {
print "The string is empty\n";
}
}
__DATA__
<p:FirstAddressLine1></p:FirstAddressLine1>
<p:FirstAddressLine1>TEST</p:FirstAddressLine1>
结果
The string is empty
The string is NOT empty
+0
我不直接使用java。我配置一个基于java的Appserver – Ratha
什么语言,你以书面形式?向我们展示您用来匹配的代码片段。 – merlin2011
为什么你没有测试它是否有一个字符(至少):'.' –
可能的重复http://*.com/questions/1732348/regex-match-open-tags-except-xhtml-self- contains-tags – Pillsy