在Splunk中将一组字符转换为另一组字符

问题描述 投票:-1回答:1

我需要使用一个替换正则表达式和5个捕获组替换西班牙语字母表的5个元音中的所有重音符号。

在我的文中我有áéíóúàèìòù等等。到现在为止我有这个正则表达式:

s/(=?[àáÀÁ])|(=?[èéÈÉ])|(=?[ìíÌÍ])|(=?[òóÒÓ])|(=?[ùúÙÚ])/$1$2$3$4$5/g

但是这个正则表达式给了我每组的相同结果。

有没有办法在每个不同的群体上获得不同的价值?像这样:

group1($ 1) - > A.

group2($ 2) - > E.

group3($ 3) - >我

group3($ 4) - > O.

group3($ 5) - > U.

我知道如何使用5种不同的正则表达式做到这一点,但我需要在一个中完成。有什么想法吗?

非常感谢你!!

regex substitution splunk regular-language rex
1个回答
0
投票

我不知道用一个正则表达式来做这件事(虽然我很想被证明是错的。)

对于这种情况,sed有一个专门的命令y / transliterate

sed -e 'y/àáÀÁèéÈÉìíÌÍòóÒÓùúÙÚ/aaAAeeEEiiIIooOOuuUU/'

但是,它不会帮助您从想要音译的字符前面删除前导=。你能结合两个sed命令吗?例如。

sed -e '{ y/àáÀÁèéÈÉìíÌÍòóÒÓùúÙÚ/AAAAEEEEIIIIOOOOUUUU/; s/=\([AEIOU]\)/\1/g; }'
© www.soinside.com 2019 - 2024. All rights reserved.