前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >正则表达式

正则表达式

原创
作者头像
Jinni
修改2019-04-11 10:32:55
4050
修改2019-04-11 10:32:55
举报
文章被收录于专栏:学习笔记1学习笔记1

语法

说明

字符

.

匹配任意字符,除换行符"\n”外

\

转义字符,使后面一个字符失去特殊意思

[...]

字符集。^表示取反。

预定义字符集(可以写在字符集[...]中)

\d

数字:[0-9]

\D

非数字:[^\d]

\s

空白字符:[<空格>\t\r\n\f\v]

\S

非空白字符:[^\s]

\w

单词字符:[A-Za-z0-9_]

\W

非单词字符:[^\w]

数量词(用在字符或(…)之后) 匹配前一个字符...次

*

0次或无限次

+

1次或无限次

?

0次或1次

{m}

m次

{m, n}

m至n次 m n可以省略:若省略m,则匹配0至n次;若省略n,则匹配m至无限次

*?+???{m, n}?

使*+?{m, n}变成非贪婪模式

边界匹配(不消耗待匹配字符串中的字符)

^

字符串开头或多行模式中每一行的开头

$

字符串末尾或多行模式中每一行的末尾

\A

仅匹配字符串开头

\Z

仅匹配字符串末尾

\b

匹配\w和\W之间

\B

[^\b]

逻辑、分组

|

任意匹配左右表达式。先左,若成功匹配则跳过匹配右边。若|不在()中,范围是整个正则表达式

(...)

括号内的表达式作为分组,每一个括号的编号+1。可以后接数量词

(?P<name>...)

除了原有的编号外,再指定一个额外的别名

\<number>

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

(?P=name)

引用别名为<name>的分组匹配到的字符串

代码语言:python
复制
import re

# 将正则表达式编译成pattern对象
pattern = re.compile(r'hello')

# 使用pattern匹配文本,获得匹配结果,无法匹配时则返回None
match = pattern.match('hello world!')

if match:
   # 使用match获得分组信息
   print(match.group())

hello

同义简写:

代码语言:python
复制
import re

m = re.match(r'hello','hello world!')
print(m.group())

re.compile(strPattern[,flag]):

flag的可选值有:

  • re.I 忽略大小写
  • M 多行模式
  • S 点任意匹配模式,改变'.'的行为
  • L 使预定字符类\w \W \b \B \s \S 取决于当前区域设定
  • U 使预定字符类\w \W \b \B \s \S \d \D 取决于unicode定义的字符属性
  • X 详细模式。这个模式下正则表达式可以是多行,忽略空白字符,并可以加入注释。以下两个正则表达式是等价的:
代码语言:python
复制
a = re.compile(r"""\d +  # the integral part
                   \.    # the decimal point
                   \d *  # some fractional digits""", re.X)
b = re.compile(r"\d+\.\d*")

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档