最近在一个项目开发中,被正则表达式折腾的头疼,所以最近忙里偷闲,针对正则的基础语法和常用正则表达式进行了一次总结,避免自己遗忘。

什么是正则表达式?

    正则表达式(Regular Expression)是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式包含普通字符(例如,az之间的字母)和特殊字符(称为”元字符”),通常被用来检索、替换那些符合某个模式(规则)的文本。

正则表达式的用途是什么?

正则表达式的用途有两种,一个是搜索字符串,一个是替换字符串。

正则表达式的元字符

常用的元字符
字符 描述
^ 匹配输入字符串的开始位置。
$ 匹配输入字符串的结束位置。
* 匹配前面的 子表达式 零次或多次。
+ 匹配前面的 子表达式 一次或多次。
? 匹配前面的 子表达式 零次或一次。
{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]

  1. 中文字符 [\u4e00-\u9fa5]

    8736f6a8392ebef6f562f3b86d434bf7604e54e0