我需要使用一个替换正则表达式和5个捕获组替换西班牙语字母的5个元音中的所有重音。
在我的文中我有áéíóúàèìòù等等。到现在为止我有这个正则表达式:
s/(=?[àáÀÁ])|(=?[èéÈÉ])|(=?[ìíÌÍ])|(=?[òóÒÓ])|(=?[ùúÙÚ])/$1$2$3$4$5/g
但是这个正则表达式给了我每组的相同结果。
有没有办法在不同的群体中获得不同的价值?像这样:
group1($ 1) - >甲
group2($ 2) - > ë
group3($ 3) - >我
group3($ 4) - > 0
group3($ 5) - > û
我知道如何使用5种不同的正则表达式来做到这一点,但我需要只用一种。有什么想法吗?
非常感谢!!
答案 0 :(得分:0)
我不知道用一个正则表达式来做这件事(虽然我很乐意被证明是错的。)
对于这种情况, sed有一个专门的命令y
/ transliterate:
sed -e 'y/àáÀÁèéÈÉìíÌÍòóÒÓùúÙÚ/aaAAeeEEiiIIooOOuuUU/'
但是,它不会帮助您从要翻译的字符前面删除前导=
。你能结合两个sed命令吗?例如
sed -e '{ y/àáÀÁèéÈÉìíÌÍòóÒÓùúÙÚ/AAAAEEEEIIIIOOOOUUUU/; s/=\([AEIOU]\)/\1/g; }'