Python复习笔记--正则表达式的常用方法总结

1--常用特殊字符总结

特殊字符解释
$匹配输入字符串的结尾位置。要匹配 $ 字符本身,请使用 \$。
( )标记一个子表达式的开始和结束位置。要匹配这些字符,请使用 \( 和 \)。
*匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 \*。
+匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 \+。
.匹配除换行符 \n 之外的任何单字符。要匹配 . ,请使用 \. 。
[标记一个中括号表达式的开始。要匹配 [,请使用 \[。
?匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 \?。
\将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。例如, 'n' 匹配字符 'n'。'\n' 匹配换行符。序列 '\\' 匹配 "\",而 '\(' 则匹配 "("。
^匹配输入字符串的开始位置,除非在方括号表达式中使用,当该符号在方括号表达式中使用时,表示不接受该方括号表达式中的字符集合。要匹配 ^ 字符本身,请使用 \^。
{标记限定符表达式的开始。要匹配 {,请使用 \{。
|指明两项之间的一个选择。要匹配 |,请使用 \|。

2--findall()隐式和显式匹配字符串

隐式匹配指的是:模式串使用了特殊字符(例如:. * ?等)来匹配字符串,其在使用findall()只会返回起始字符和结束字符之间的字符串。

显式匹配指的是:模式串不使用特殊字符来匹配字符串,而采取完整的字符子串进行匹配,其在使用findall()进行查询时会返回完整的字符子串。

实例代码:

import re

# 隐式匹配两个字符之间的字符串
def demo1():
    pattern = ',(.*)!'
    text = "Hello, World!"
    print(re.findall(pattern, text))

# 显式匹配字符串
def demo2():
    pattern = "World"
    text = "Hello, World!"
    print(re.findall(pattern, text))

if __name__ == "__main__":
    demo1() # [' World']
    demo2() # ['World']

3--常用匹配常量总结

3-1--re.IGNORECASE忽略大小写进行匹配

import re

# 显式匹配
def demo1():
    pattern = 'worlD'
    text = "Hello, World!"
    print(re.findall(pattern, text, re.IGNORECASE))

if __name__ == "__main__":
    demo1() # ['World']

3-2--re.ASCII只匹配ASCII字符

import re

# 显式匹配
def demo1():
    pattern = '\w+' # 默认匹配所有字符
    text = "你好, World123!"
    print(re.findall(pattern, text, re.ASCII))

if __name__ == "__main__":
    demo1() # ['World123']

3-3--re.DOTALL连同\n一起匹配

import re

def demo1():
    pattern = r'.*'
    text = "你好\n, World123!"
    print(re.findall(pattern, text)) # ['你好', '', ', World123!', '']
    print(re.findall(pattern, text, re.DOTALL)) # ['你好\n, World123!', '']

if __name__ == "__main__":
    demo1()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值