最近在一个项目开发中,被正则表达式折腾的头疼,所以最近忙里偷闲,针对正则的基础语法和常用正则表达式进行了一次总结,避免自己遗忘。
什么是正则表达式?
正则表达式(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