正则表达式整理符号

时间:2016-01-27 16:02:18

标签: regex bash

我试图理解“整理符号”匹配是如何工作的,但我没有说出来。我明白这意味着匹配一个确切的序列而不仅仅是字符,即:

echo "ciiiao" | grep '[oa]'     --> output 'ciiiao'
echo "ciiiao" | grep '[[.oa.]]' --> no output
echo "ciiiao" | grep '[[.ia.]]' --> output 'ciiiao'

但是,第三个命令不起作用。我错了还是误解了什么?

我已阅读此正则表达式tutorial

1 个答案:

答案 0 :(得分:1)

digraph被视为语言中的单个字符时,通常会使用整理符号。它们是POSIX regular expression specification的一个元素,并没有得到广泛支持。

例如,在某些语言中" sh"被视为单个字符。假设语言环境文件定义了它(整理符号只有在当前locale中定义时才有效),整理符号[[.sh.]]将被视为单个字符。同样,搜索.[^a]也可以匹配" sh。"如果区域设置定义了" sh"如下" h"在字母表中,[g-i]也会匹配" sh。"