最近在一个项目开发中,被正则表达式折腾的头疼,所以最近忙里偷闲,针对正则的基础语法和常用正则表达式进行了一次总结,避免自己遗忘。
什么是正则表达式?
正则表达式(Regular Expression)是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式包含普通字符(例如,a到z之间的字母)和特殊字符(称为”元字符”),通常被用来检索、替换那些符合某个模式(规则)的文本。
正则表达式的用途是什么?
正则表达式的用途有两种,一个是搜索字符串,一个是替换字符串。
正则表达式的元字符
常用的元字符
| 字符 | 描述 |
|---|---|
| ^ | 匹配输入字符串的开始位置。 |
| $ | 匹配输入字符串的结束位置。 |
| * | 匹配前面的 子表达式 零次或多次。 |
| + | 匹配前面的 子表达式 一次或多次。 |
| ? | 匹配前面的 子表达式 零次或一次。 |
| {n} | 首先n是一个非负整数>=0,表示前面的字符/字符串 有n个,这是一个确定的值,不是范围! |
| {n,} | 首先n是一个非负整数>=0,表示前面的字符/字符串 至少有n个,这是一个范围! |
| {n,m} | 首先n和m均为非负整数>=0,且n <= m,表示前面的字符/字符串 至少有n个,至多有m个,这是一个范围! |
| x | y |
| [] | 单个字符的集合范围。 |
| [^xyz] | 匹配未包含的任意字符。例如,[^abc] 可以匹配”plain”中的’p’、’l’、’i’、’n’。 |
| \b | 匹配一个单词边界,即该元字符代表的位置必须是字符串的边界。 |
| \B | 匹配一个非单词边界,同上面的相反。 |
| \d | 匹配数字字符,等价于[0-9]。 |
| \D | 匹配非数字字符,等价于[^0-9]。 |
| \n | 匹配换行符,等价于 \x0a 和 \cJ。 |
| \r | 匹配回车符,等价于 \x0d 和 \cM。 |
| \s | 匹配任何空白字符,包括空格、制表符、换页符等等,等价于 [ \f\n\r\t\v]。 |
| \w | 匹配字母、数字、下划线。等价于 [A-Za-z0-9_]。 |
如果想要了解更多正则表达式的元字符,可自行前往菜鸟教程查看。
特殊字符
特殊字符如果需要单独使用,需要在前面加上转义字符\。
需要转义的特殊字符有以下几个:$、(、)、*、+、.、[、?、\、^、{、|。
限定符
限定符包含:*、+、?、{n}、{n,}、{n,m}。
定位符
定位符包含:^、$、\b、\B。
正则表达式的使用注意事项
运算符的优先级
运算符优先级从高到低:\ > () [] > 限定符 > ^ $ \任何元字符 任何字符 > |
其他注意事项
<<<<<<< HEAD
暂无
8736f6a8392ebef6f562f3b86d434bf7604e54e0
正则表达式在线测试工具
常用的正则表达式
<<<<<<< HEAD
- 中文字符
[\u4e00-\u9fa5]8736f6a8392ebef6f562f3b86d434bf7604e54e0