正则表达式,用于查找逃逸撇号周围的收缩

时间:2012-04-17 01:58:13

标签: regex sed

我有一些这样的文字:

i18n_en_it_IT.xml:<li>risalire all&\#39;autore.</li>

并且像这样(注意第一个中的转义英镑符号但不是第二个中的转义符号)

i18n_en_it_IT.xml:<li>risalire all&#39;autore.</li>

如果我运行sed表达式来替换

&\#39; 
&#39;

有一个倾斜的撇号(d \ u2019)它适用于第一种情况(带逃逸),但不适用于第二种情况,我不知道为什么?我在这里看到的唯一区别是我从第二个中移除了双重逃逸,但由于某种原因它将与all'autore不匹配并将其替换为alld \ u2019autore?

 s/\([A-Za-z]\+\)&\\#39;\([A-Za-z]\+\)/\1\\u2019\2/g
 s/\([A-Za-z]\+\)&#39;\([A-Za-z]\+\)/\1\\u2019\2/g

1 个答案:

答案 0 :(得分:0)

使用sed -r简化了屏蔽,如果我使用\\&\\#39;中的?,我可以更改这两个表达式,将其标记为可选:< / p>

cat pounds.xml | sed -r 's/([A-Za-z]+)&\\?#39;([A-Za-z]+)/\1\\u2019\2/g'