正则表达式

作者: 我是一只菜鸟呀 | 来源:发表于2017-06-20 23:42 被阅读34次

正则表达式是对字符串进行过滤的规则

python中re模块提供了正则表达式的匹配操作

常见匹配模式

参考

注意事项:

1.分组编号是从1开始。

2.分组的引用: \number

3.分组的别名及引用: (?P<alias>abc)(?P=alias)   匹配 abcabc

4.有些虽然用()括起来,但是并不是分组

5.能用非贪婪就不要用贪婪

re模块的几个函数

re.compile

将正则表达式编译成正则表达式对象。

pattern = re.compile(string,flags)

match函数

从起始位置开始匹配,且只能从起始位置开始匹配,找到第一个就返回或者返回None

result = re.match(pattern,string,flags=0)

#pattern可以直接用字符串形式表示,也可以用上面的compile后的正则表达式对象

#flags 通常用到re.S,可以用.匹配换行符\n。详见底部

result.group()

#返回结果:0表示匹配的整个串,1表示匹配的第一个分组,默认是0

search函数

扫描整个字符串,直到找到第一个就返回或者返回None

match和search比较

match必须跟字符串的头部匹配成功,否则返回None,而search是扫描整个字符串,不需要头部必须匹配。

结论

能用search就不要用match

findall函数

以列表的形式返回所有匹配的字符串

注意:列表中的元素将根据正则表达式的写法。

  正则表达式如果没有分组(包括非捕获的括号,例如"(?:abc)"),那么返回值是整个匹配串的列表;

  如果有分组,那返回的列表元素是元组,元组的元素是同一个匹配串中的所有分组。

sub(pattern, repl, string[, count])函数

当repl是一个字符串时,可以使用\id或\g、\g引用分组,但不能使用编号0。

当repl是一个方法时,这个方法应当只接受一个参数(Match对象),并返回一个字符串用于替换(返回的字符串中不能再引用分组)。

count用于指定最多替换次数,不指定时全部替换。

s = 'i say, hello world!'

print re.sub('(\w+) (\w+)',r'\2 \1', s)

def func(m):

  return m.group(1).title() + ' ' + m.group(2).title()

print re.sub(pattern,func, s)

### output ###

# say i, world hello!

# I Say, Hello World!

#flags

• re.I(全拼:IGNORECASE): 忽略大小写(括号内是完整写法,下同)

• re.M(全拼:MULTILINE): 多行模式,改变'^'和'$'的行为(参见上图)

• re.S(全拼:DOTALL): 点任意匹配模式,改变'.'的行为

• re.L(全拼:LOCALE): 使预定字符类 \w \W \b \B \s \S 取决于当前区域设定

• re.U(全拼:UNICODE): 使预定字符类 \w \W \b \B \s \S \d \D 取决于unicode定义的字符属性

• re.X(全拼:VERBOSE): 详细模式。这个模式下正则表达式可以是多行,忽略空白字符,并可以加入注释。

相关文章

  • Linux命令行与Shell脚本编程大全-shell正则表达式

    本章内容: 定义正则表达式 了解基本正则表达式 扩展正则表达式 创建正则表达式 定义正则表达式 正则表达式是你定义...

  • 正则相关

    正则表达式基本语法 正则表达式常见字符 正则表达式特殊字符 正则表达式数量词 正则表达式边界匹配 正则表达式逻辑或...

  • 正则表达式系列-1

    正则表达式系列-1正则表达式系列-2正则表达式系列-3正则表达式系列-4 什么是正则表达式 正则表达式就是用事先定...

  • 正则表达式

    正则表达式 - 教程正则表达式 - 简介正则表达式 - 语法正则表达式 - 元字符正则表达式 - 运算符优先级正则...

  • Python基础入门 - 正则表达式与综合实战

    1. 初识正则表达式 1.1 介绍 步骤介绍正则表达式入门及应用正则表达式的进阶正则表达式案例 1.2 正则表达式...

  • Java正则表达式参考

    Java正则表达式入门 java正则表达式应用 深入浅出之正则表达式(一) 深入浅出之正则表达式(二) 正则表达式...

  • 正则表达式

    正则表达式 正则表达式就是记录文本规则的代码 正则表达式常用的元字符 正则表达式常用的限定符 正则表达式举例:这里...

  • Python爬虫(十)_正则表达式

    本篇将介绍python正则表达式,更多内容请参考:【python正则表达式】 什么是正则表达式 正则表达式,又称规...

  • python正则表达式

    本篇将介绍python正则表达式,更多内容请参考:【python正则表达式】 什么是正则表达式 正则表达式,又称规...

  • 正则表达式

    了解正则表达式基本语法 能够使用JavaScript的正则对象 正则表达式简介 什么是正则表达式 正则表达式:用于...

网友评论

    本文标题:正则表达式

    本文链接:https://www.haomeiwen.com/subject/ysvaqxtx.html