Perl替换忽略括号之间的所有内容

时间:2015-07-23 02:17:31

标签: regex perl

我有一个字符串:'Hello "Jay" < img src="hello.png">'

我正在使用一个简单的替代品提取字符串并转义双/单引号:

$string =~ s/\"/\\\"/g;

问题是我不想在标签

中逃避那些双引号

是否有办法忽略&lt; ..&gt;

之间的所有双引号

2 个答案:

答案 0 :(得分:2)

试试这个,看看它是否适合你:

s/\"(?![^<>]*>)/\\\"/g;

如果它没有给我一个更长的输入字符串来测试。

答案 1 :(得分:-1)

s/\"(?![^<>]*>)/\\\"/g

\"匹配双引号

(?![^<>]*>)否定前瞻,暗示它与[^<>]*

中的任何内容都不匹配