综述
由于perl是正则表达式的鼻祖,使用perl语法最为合适。 正则表达式一般用在“三剑客”(grep, sed, awk)和vim中。 要注意的是sed和vim都是行编辑模式。
使用
比如批量重命名文件夹就会用到。
| |
greedy 和 lazy 匹配
在* +后添加?
转义字符
. ? + * [] {} /
基本字符类
\d 数字字符 \D 非数字字符
\w [a-zA-Z0-9_] \W [^a-zA-Z0-9_]
\s 空白字符 \S
POSIX字符类
- [:alnum:] [a-zA-Z0-9]
- [:alpha:] [a-zA-Z]
- [:xdigit:] [a-fA-F0-9]
边界匹配
- \b 单词边界 \B
环视(lookaround)
设置需要匹配不需要获取的部分。 因为lookahead比lookbehind实现更简单,所以lookbehind一般有字符数字的限制,lookahead则没有。
向前查看(lookahead)
- 肯定式 .+(?=:)
- 否定式 .+(?!:)
向后查看(lookbehind)
- 肯定式 (?<=$)[0-9.]+
- 否定式 (?<!$)[0-9.]+
嵌入式条件
(/()?\d{3}(?(1))|-)\d{3}-\d{4}
123-456-7890
(123)456-7890
常用正则表达式
邮政编码
| |
URL
| |
| |