什么是正则表达式?
Regular Expression(一般简写为RegEx或者RegExp),也叫正规表示法,常规表示法。是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。
正则表达式可以解决查找&替换两大需求
基础
\d(或[0-9]) 可以匹配一个数字
\w 可以匹配一个字母或数字
00\d 可以匹配 007
\d\d\d 可以匹配 010
\w\w\d 可以匹配 py3
.可以匹配任意字符
py.可以匹配'pyc','pyo','py!'
*表示任意个字符(包括0个)
+表示至少一个字符
?表示0个或1个字符
{n}表示n个字符
{n,m}表示n-m个字符
\s可以匹配一个空格(包括tab等空白符)
\d{3}\s+\d{3,8}
\d{3}表示匹配3个数字,例如010
\s+表示至少有一个空格,例如‘ ’
\S+匹配不包含空白符的字符串。
\d{3,8}表示3-8个数字,例如1234567
如果要匹配010-12345这样的号码呢?‘-’是特殊字符,需要用'\'转义,所以正则是\d{3}\-\d{5}
进阶
要做到更精确的匹配,可以用[]表示范围
[0-9a-zA-Z\_] 可以匹配一个数字,字母或者下划线;
[0-9a-zA-Z\_]+ 可以匹配一个数字,字母或者下划线组成的字符串,比如a100,0_Z
[a-zA-Z\_][0-9a-zA-Z\_]{0, 19}更精确地限制了变量的长度是1-20个字符(前面1个字符+后面最多19个字符)。
A|B可以匹配A或B
(P|python)可以匹配‘Python’或者‘python’
^表示行的开头
^\d表示必须以数字开头
$表示行的结束
\d$表示必须以数字结束
py可以匹配python,但^py$只能匹配py
\b 是正则表达式的一个特殊代码(元字符,metacharacter),代表单词的开头/结尾,也就是代词的分界处。只匹配一个位置。
假如你要找hi后面不远处的lucy,\bhi\b.*\bLucy\b
[\^x] 匹配除了x以外的任意字符
网友评论