我有一些这样的文字:
i18n_en_it_IT.xml:<li>risalire all&\#39;autore.</li>
并且像这样(注意第一个中的转义英镑符号但不是第二个中的转义符号)
i18n_en_it_IT.xml:<li>risalire all'autore.</li>
如果我运行sed表达式来替换
&\#39;
'
有一个倾斜的撇号(d \ u2019)它适用于第一种情况(带逃逸),但不适用于第二种情况,我不知道为什么?我在这里看到的唯一区别是我从第二个中移除了双重逃逸,但由于某种原因它将与all'autore不匹配并将其替换为alld \ u2019autore?
s/\([A-Za-z]\+\)&\\#39;\([A-Za-z]\+\)/\1\\u2019\2/g
s/\([A-Za-z]\+\)'\([A-Za-z]\+\)/\1\\u2019\2/g
答案 0 :(得分:0)
使用sed -r
简化了屏蔽,如果我使用\\
跟&\\#39;
中的?
,我可以更改这两个表达式,将其标记为可选:< / p>
cat pounds.xml | sed -r 's/([A-Za-z]+)&\\?#39;([A-Za-z]+)/\1\\u2019\2/g'