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