awk和等价类

Eug*_*sky 4 regex awk grep equivalence-classes

gnu awk是否支持POSIX等价类

是否可以使用awk匹配[[= a =]],就像在grep中完成一样?

$ echo ábÅ | grep [[=a=]]
ábÅ

$ echo ábÅ | grep -o [[=a=]]
á
Å
Run Code Online (Sandbox Code Playgroud)

Jam*_*own 5

看到这里,到最后:

特定于区域设置的名称,用于相等字符列表.名称括在'[='和'=]'之间.例如,名称"e"可能用于表示所有"e","ê","è"和"é".在这种情况下,"[[= e =]]"是匹配的正则表达式'e','ê','é'或'è'中的任何一个.

这些功能在非英语语言环境中非常有价值.

注意:gawk用于正则表达式匹配的库函数目前只识别POSIX字符类; 他们不认识整理符号或等价类.


Ray*_*ger 5

根据GAWK用户指南,"注意:gawk用于正则表达式匹配的库函数目前只识别POSIX字符类;它们不识别整理符号或等价类."

因此,您将不得不在正则表达式/[aáÅ]/或任何您正在寻找的内容中写出允许的等价物.

有区域设置感知的字符范围,但这似乎不是你要问的.

  • 这是一个无赖.在底层库得到增强之前,您必须手动或shell-out写出等价,以让另一个程序完成工作. (2认同)