我得到一个xml节点;
<p:FirstAddressLine1></p:FirstAddressLine1>
我想重写该节点,如果它有一个空字符串/ null。我使用^$
但它无法验证特定的xml节点是否包含空字符串。
任何人都知道,我在这里做错了什么?和正确使用的正则表达式?
答案 0 :(得分:1)
我会使用类似以下regex
(?:<p:FirstAddressLine1>(?!<\/p))
使用Negative Lookahead
,并匹配<p:FirstAddressLine1>
后跟</p
以外的任何内容。如果它在第一个&lt;&gt;之后直接看到</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>
<强> RESULT 强>
The string is empty
The string is NOT empty