2011年11月17日木曜日

[有待整理] 正则表达式

1. . 匹配任何单个字符
例如, r.t 匹配这些字符串 rat, rut, r t, 但是不匹配 root

2. $ 匹配行结束符
例如, 正则表达式 weasel$ 能够匹配字符串 "He's a weasel" 的末尾, 但是不能匹配字符串 "They are a bunch of weasels."

3. ^ 匹配一行的开始
例如, 正则表达式 ^When in 能够匹配字符串 "When in the course of human events" 的开始, 但是不能匹配 "What and When in the"

4. \ 转义符号
用来将这里列出的这些元字符当作普通的字符来进行匹配, 例如正则表达式 \$ 被用来匹配美元符号, 而不是行尾, 类似的, 正则表达式 \. 用来匹配点字符, 而不是任何字符的通配符

5. [] [c1-c2] [^c1-c2] 匹配括号中的任何一个 (单个) 字符
5-1.
例如, 正则表达式 r[aou]t 匹配 rat, rot 和 rut, 但是不匹配 ret
5-2. 可以在括号中使用连字符 - 来指定字符的区间
例如, 正则表达式 [0-9] 可以匹配任何数字字符
5-3. 可以制定多个区间
例如, 正则表达式 [A-Za-z] 可以匹配任何大小写字母
5-4. 排除
例如, 正则表达式 [^269A-Z] 将匹配除了 2, 6, 9 和所有大写字母之外的任何字符

6. \< \> 匹配词 (开始 \< 和结束 \>)
例如, 正则表达式 \<the 能够匹配字符串 "for the wise" 中的 "the", 但是不能匹配字符串 "otherwise" 中的 "the"
注意, 这个元字符不是所有的软件都支持的

7. \( \) 将 \( 和 \) 之间的表达式定义为"组" (group)
将匹配这个表达式的字符保存到一个临时区域 (一个正则表达式中最多可以保存 9 个), 它们可以用 \1 到 \9 的符号来引用

8. | 将两个匹配条件进行逻辑"或" (Or) 运算
例如, 正则表达式 (him|her) 匹配 "it belongs to him" 和 "it belongs to her", 但是不能匹配 "it belongs to them."
注意, 这个元字符不是所有的软件都支持的

9. * 匹配 0 或多个正好在它之前的那个字符
例如, 正则表达式 .* 意味着能够匹配任意数量的任何字符

10. + 匹配 1 或多个正好在它之前的那个字符
例如, 正则表达式 9+ 匹配 9, 99, 999 等
注意, 这个元字符不是所有的软件都支持的

11. ? 匹配 0 或 1 个正好在它之前的那个字符
注意, 这个元字符不是所有的软件都支持的

12. \{i\} \{i,j\} 匹配指定数目的字符, 这些字符是在它之前的表达式定义的
12-1. A[0-9]\{3\} 能够匹配字符 A 后面跟着正好 3 个数字字符的串, A123, A348 等, 但是不匹配 A1234
12-2. [0-9]\{4,6\} 匹配连续的任意 4 个, 5 个或者 6 个数字字符
注意, 这个元字符不是所有的软件都支持的

12. 匹配字符串中单个字符串
echo "a b"|grep -e "\(a \)\{1\}[^ ].*"

0 件のコメント:

コメントを投稿