正则表达式的基本语法

正则表达式

常见的字符

\:转义字符,是\后改变字符原来的意思。例如正则表达式\\的匹配的就是一个\

[...]:字符集。相应的位置可以是字符集中的任意的字符。也就是匹配字符集中的元素,下面的例子就是一个介绍,不过也可以使用
[b-c]代替下面的[bcd],也就是可以是给出的范围。如果在字符的前面加入^就表示取反。

import re

source = 'abeefzf'

pattern = re.compile(r'a[bcd]e',re.IGNORECASE)
output = pattern.match(source)

print type(output)
print output.group()

# import re

source = 'abeef'

pattern = re.compile(r'a[bc]e',re.IGNORECASE)
# pattern = re.compile(r'imooc')

output = pattern.match(source)

print type(output)
print output.group()

'''output
<type '_sre.SRE_Match'>
abe
'''

预定义字符,可以写在[...]中的

\d:数字0-9,也就是可是代替[0-9]。

\D:非数字,也就是[^\d]

\s:空白的字符。

\S:非空白的字符[^\s]

\w:可以是数字,字母的大小写,也就相当于[A-Za-z0-9]

\W:上面的逆。

数量词,主要是房子字符的后面,很重要

*:匹配前面的字符0次或无限次。

+:匹配前面的字符1次或无限次。

?:匹配前面的字符0次或1次。

{m}:匹配前一个字符m次。

{m,n}:匹配前一个字符m到n次。

下面举一个栗子。

import re

source = 'abeeeeefzf'

pattern = re.compile(r'abe+',re.IGNORECASE)

output = pattern.findall(source)

print type(output)
print output
'''output
<type 'list'>
['abeeeee']
'''

边界匹配,从头或者从尾部开始

^:匹配字符串的开始。

$:匹配字符串的尾部。

下面的不常用吧,我感觉哈~
A:仅匹配字符串的开头。

Z:仅匹配字符串的尾部。

逻辑以及分组

|:在|的左右两边任意的匹配。先匹配左边的表达式,成功匹配后,也就直接跳过后面的匹配

(...):被括号括起来的表达式作为一个分组,作为一个整体。从表达式左边开始,没遇到一个(,编号+1

(P<name>...):同样是分组,除了原有的编号,同时指定额外的一个名字。

\<number>:引用编号的分组匹配到的字符串。

(?P=name):引用名字为的分组匹配的字符串。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值