[] 字符集合的 RE 特殊字符的符号
[list] 范例:grep -n 'g[ld]' regular_express.txt 搜寻含有 (gl) 或 (gd)
的那一行~ 需要特别留意的是,在 [] 当中『谨代表一个待搜寻的字符』,例如:
a[afl]y 代表搜寻的字符串可以是 aay, afy, aly 亦即 [afl] 代表 a 或 f 或 l
的意思! [ch1-ch2] 范例:grep -n '[0-9]' regular_express.txt 搜寻含有任
意数字的那一行!需特别留意,在字符集合 [] 中的减号 - 是有特殊意义的,他
代表两个字符之间的所有连续字符!但这个连续与否与 ASCII 编码有关, 因此,
您的编码需要设定正确(在 bash 当中,需要确定 LANG 与 LANGUAGE 的变量是否
正确!) 例如所有大写字符则为 [A-Z] [^] 范例:grep -n 'oo[^t]' regular_express.txt
搜寻的字符串可以是 (oog) (ood) 但不能是 (oot) ,那个 ^ 在 [] 内时, 代表的意义是
『反向选择』的意思~例如,我不要大写字符,则为 [^A-Z] ~ 但是,需要特别注意的是,
如果以 grep -n [^A-Z] regular_express.txt 来搜寻, 却发现该档案内的所有行都被列出,
为什么?因为这个 [^A-Z] 是『非大写字符』的意思, 因为每一行均有非大写字符,例如第一
行的 "Open Source" 就有 p,e,n,o.... 等等的小写字符, 以及双引号 (") 等字符,所以当然
符合 [^A-Z] 的搜寻!
阅读(984) | 评论(0) | 转发(0) |