2

我有一些这样的文字:

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
4

1 回答 1

0

使用sed -r, 简化了屏蔽,如果我在后面加上 , 可以更改这两个表达式\\&\\#39;?将其标记为可选:

cat pounds.xml | sed -r 's/([A-Za-z]+)&\\?#39;([A-Za-z]+)/\1\\u2019\2/g'
于 2012-04-17T03:02:51.910 回答