正则表达式学习笔记

基本示例


import re
Regex = re.compile(r'\d\d\d-\d\d\d-\d\d\d\d')
mo = Regex.search('123-233-4325')
print(mo.group())

基本符号


1. 括号:()

  • 创建分组
  • 示例:phoneNumRegex = re.compile(r’(\d\d\d)-(\d\d\d-\d\d\d\d)’)
  • mo.group()的传入参数:①为0或不传时返回整个匹配的文本②为其他整数时返回第n个分组的文本

2. 管道:|

  • "或"符号,匹配许多表达式中的一个
  • 示例:heroRegex = re.compile (r’Batman|Tina Fey’)

3. 问号:?

  • 表明它前面的分组在这个模式中是可选的,即匹配这个问号之前的分组零次或一次
  • 示例:batRegex = re.compile(r’Bat(wo)?man’)
  • 还用以表示非贪心匹配

4. 星号:

  • 匹配零次或多次”,即星号之前的分组,可以在文本中出现任意次
  • 示例:batRegex = re.compile(r’Bat(wo)*man’)

5. 加好:+

  • 意味着“匹配一次或多次”,即加号之前的分组至少匹配一次
  • 示例:batRegex = re.compile(r’Bat(wo)+man’)

6. 花括号:{}

  • 分组重复特定次数
  • 示例:haRegex = re.compile(r’(Ha){3}’)
  • 可以指定一个范围,如(Ha){3,5}
    ①默认是贪心匹配,返回匹配次数最大的文本
    ②非贪心匹配:re.compile(r’(Ha){3,5}?’)

7. 插入字符(^)美元字符($)

- 插入符号(^),表明匹配必须发生在被查找文

本开始处
- 美元符号(KaTeX parse error: Undefined control sequence: \d at position 45: …:re.compile(r'^\̲d̲+’)用以匹配从开始到结束都是数字的字符串

8. 通配符(.)

- 匹配除了换行之外的所有字符,但句点字符只匹配一个字
- 示例:re.compile(r'.at')

9. 点-星匹配所有字符(.*)

- 匹配所有字符串
- 示例:re.compile(r'First Name: (.*) Last Name: (.*)')
- 默认贪心模式,非贪心模式:re.compile(r'<.*?>')

10. 字符分类

\d:0 到 9 的任何数字
\D:除 0 到 9 的数字以外的任何字符
\w:任何字母、数字或下划线字符(可以认为是匹配“单词”字符)
\W:除字母、数字和下划线以外的任何字符
\s:空格、制表符或换行符(可以认为是匹配“空白”字符)
\S:除空格、制表符和换行符以外的任何字符
在这里插入图片描述

基本方法


  1. re.compile(r’\d\d\d-\d\d\d-\d\d\d\d’):返回一个Regex对象
  2. re.compile(’.*’, re.DOTALL):将匹配所有字符(包括换行符)
  3. re.compile(r’robocop’, re.I):匹配时不区分大小写
  4. Regex.search(‘123-233-4325’):返回Match对象,返回值中仅含有匹配的第一个文本
  5. Regex.findall(‘123-233-4325’):返回字符串,返回值中含有匹配的所有文本
  6. mo.group():返回匹配文本的字符串
  7. mo.groups():返回获取的所有分组
  8. Regex.sub():用新的文本替换匹配到的文本。参数:①用于取代发现的文本②待查找文本

注意

  1. 复杂正则表达式多行表示:
phoneRegex = re.compile(r'''(
	(\d{3}|\(\d{3}\))?
	(\s|-|.)?
	\d{3}
	(\s|-|.)
	\d{4}
	(\s*(ext|x|ext.)\s*\d{2,5})?
	)''',re.VERBOSE)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值