正则表达式逃脱围绕收缩撇号的
问题描述:
我有一些文字是这样的:正则表达式逃脱围绕收缩撇号的
i18n_en_it_IT.xml:<li>risalire all&\#39;autore.</li>
像这样(注意躲过英镑符号中的第一个,但不是在第二)
i18n_en_it_IT.xml:<li>risalire all'autore.</li>
如果我运行一个sed表达具有倾斜撇号(d \ u2019)取代
&\#39;
'
它工作ö第一个案件(逃跑),但不是第二个案件,我不知道为什么?我在这里看到的唯一区别是我从第二个删除了双重逃脱,但由于某种原因它不会匹配所有的' 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
答
随着sed -r
,从而简化了屏蔽,我可以改变两个表达式,如果我按照\\
在&\\#39;
与?
,将其标记为可选:
cat pounds.xml | sed -r 's/([A-Za-z]+)&\\?#39;([A-Za-z]+)/\1\\u2019\2/g'
这是解决了,问题是我加了一个斜撇号的广告,当我删除它时,这两个工作都起作用了,我已经修正了这个例子,删除了d \ u2019,并用\ u2019替换) – user1244166 2012-04-17 02:45:30