我正在尝试使用Perl从串口读取XML数据。 我得到了多个XML响应,有些是完整的,有些是一半的XML响应。在这之间,我需要检查xyz节点中存在的数据。为此,我编写了以下代码行
if($response =~ /((<data>)(.*)(</data>)/){
# Process element here
$data = $0;
}
但我得到错误Perl Regexp修饰符“/ d”和“/ a”是互斥的
请求建议我可以使用的任何解决方案。
此致 Jnaneswar
答案 0 :(得分:2)
您必须在正则表达式中转义分隔符(此处为/
)。
/(<data>)(.*?)(<\/data>)/s
另请注意:
.*
对于你的文字中有两次</data>
的案例,不合适。/s
允许.
匹配换行符。