初识正则表达式

Posted csxz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初识正则表达式相关的知识,希望对你有一定的参考价值。

1.字符匹配

(1)普通字符

大多数字母和字符会和自身匹配

(2)元字符

. ^   $   * + ? \ | () 

2.元字符理解

(1)[]用来指定字符集:[a-z],元字符在字符集中不起作用,补集匹配不在区间范围内字符

>>> st="top tip tqp twp tep"
>>> res=r"top"
>>> re.findall(res,st)
[‘top‘]
>>> res=r"t[io]p"
>>> re.findall(res,st)
[‘top‘, ‘tip‘]

>>> res=r"t[^io]p"     #[^io]表示不包含io
>>> re.findall(res,st)
[‘tqp‘, ‘twp‘, ‘tep‘]

(2)^(匹配行首,在mulitiline模式匹配换行)

>>> s="hello word,hello boy"
>>> r=r"^hello"
>>> re.findall(r,s)
[‘hello‘]

 (3) $(匹配行尾)

>>> r=r"boy$"
>>> re.findall(r,s)
[‘boy‘]

(4)\(可用于取消所有元字符)

\d (匹配十进制) [0-9] ; \D(匹配非数字字符)[^0-9];\s(匹配任何空白字符) [\t\n\r\f\v]

\S(匹配任何非空白字符) [^\t\n\r\f\v];\w(匹配字母、数字)[a-zA-Z0-9_];\W(匹配非字母、数字)[^a-zA-Z0-9_]

(5)重复

>>> r=r"^010-\d8" #代表重复8次\d
>>> re.findall(r,"010-98707890")
[‘010-98707890‘]

(6)*(将前一个字符重复零次或多次)

>>> r=r"ab*"
>>> re.findall(r,"aaaaabbbbfffff")
[‘a‘, ‘a‘, ‘a‘, ‘a‘, ‘abbbb‘]
>>> re.findall(r,"a")
[‘a‘]

(7)+( 将前一个字符匹配一次或多次)

>>> r=r"ab+"
>>> re.findall(r,"a")
[]

(8)?(匹配一次或零次,标识某物是可选的)

>>> r=r"^010-?\d8$"
>>> re.findall(r,"010-98707890")
[‘010-98707890‘]
>>> re.findall(r,"01098707890")
[‘01098707890‘]
(9)m,n(至少重复m次,至多重复n次)0,等同于*

1,等同于+,0,1与?相同

>>> r=r"a1,3"
>>> re.findall(r,"01abcdaasa")
[‘a‘, ‘aa‘, ‘a‘]

以上是关于初识正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

初识正则表达式

初识正则表达式

初识正则

正则表达式初识及简单的案例应用

Python正则表达式初识

Python正则表达式初识