python-正则表达式

正则表达式
字符表示实例
\d0-9的任何数字
\D0-9的以外的任何字符
\w任何字母、数字、下划线,可认为匹配单词
\W\w以外的任何字符
\s空格、制表符\t、换行符\n,可认为是匹配’空白‘字符
\S\s以外的任何字符
import re #re模块包含正则表达相关含函数
#匹配"asfasf123-123-1234asfasf"中的123-123-1234
reg  = re.compile(r'\d\d\d-\d\d\d-\d\d\d\d')
reg1 = re.compile(r'(\d\d\d)-(\d\d\d-\d\d\d\d)') #和reg一样,只是分为2组
reg2 = re.compile(r'\d{3}-\d{3}-\d{4}')
#------------------------------------
#title:使用管道'|'匹配多个分组
#tips :如果要匹配字符串中的'|',则需要使用倒斜杠转义,即\|
#------------------------------------
reg  = re.compile(r'Batman|Tina Fey')  #匹配第一次出现的文本
#对于'Batman and Tina Fey'的匹配,结果为'Batman'
#对于'Tina Fey and Batman'的匹配,结果为'Tina Fey'
reg1 = re.compile(r'Bat(man|mobile|bat|copter)') #匹配字符串中含有Batman、Batmobile、Batbat、Batcopter中的某一个
#------------------------------------
#title:使用'?'实现可选匹配
#tips :如果要匹配字符串中的'?',则需要使用倒斜杠转义,即\?
#------------------------------------
reg  = re.compile(r'Bat(wo)?man') #模式wo为可选的分组,wo出现0次或1次,既可匹配字符串中的Batman,也可匹配Batwoman
#------------------------------------
#title:使用'*'匹配0次或多次
#tips :如果要匹配字符串中的'*',则需要使用倒斜杠转义,即\*
#------------------------------------
reg  = re.compile(r'Bat(wo)*man') #(wo)*匹配'wo'零次或多次,可匹配Batman、Batwoman、Batwowoman...
#------------------------------------
#title:使用'+'匹配1次或多次
#tips :如*果要匹配字符串中的'+',则需要使用倒斜杠转义,即\+
#------------------------------------
reg  = re.compile(r'Bat(wo)+man') #(wo)+匹配'wo'1次或多次,可匹配Batwoman、Batwowoman...
#------------------------------------
#title:使用'{}'匹配特定次数
#tips :
#------------------------------------
reg  = re.compile(r'(Ha){3}') #'Ha'出现3次,匹配字符串中的’HaHaHa',但不会匹配'HaHa'
#{3,5} 出现3-5次   {3,}至少出现3次以上

#------------------------------------
#title:贪心(Ha){3,5}和非贪心(Ha){3,5}?匹配
#tips :
#------------------------------------
#对于包含'HaHaHaHaHa'的字符串
reg1 = re.compile(r'(Ha){3,5}')    #贪心匹配结果为HaHaHaHaHa,Ha出现5次的
reg2 = re.compile(r'(Ha){3,5}?')  #非贪心匹配结果为HaHaHa,Ha出现3次的
#[0-5] 和 (0|1|2|3|4|5) 作用一样,匹配0-5中的一个
#[aeiouAEIOU]匹配元音字符,不论大小写  [^aeiouAEIOU] 则是匹配非元音字符
#[a-zA-Z0-9] 匹配所有的大小写字母和数字
#方括号[]内正则表达式符号一般不被解释,不需要在'.'、'?'、'()'用'\'转义
#------------------------------------
#title:开始'^'末尾'$'
#tips :插入符号'^'
#------------------------------------
reg  = re.compile(r'^Hello') #匹配以'Hello'开始的字符串
#r'\d$' 匹配以0-9中某个数结束的字符串
#r'^\d+$' 匹配从开始到结束都是数字的字符串

#------------------------------------
#title:通配符'.'
#tips :匹配除换行之外所有字符,如果要匹配字符串中的'.',则需要使用倒斜杠转义,即\.
#------------------------------------
#r'.at' 匹配cat、lat、hat....,        '.'只能匹配一个字符  
#r'.*at' 匹配cccccat、9-098.\.at...., '.*'匹配所有字符, 如r'First Name:(.*) Last Name:(.*)'  
##对于'<To serve man> for dinner.>'
##r'<.*>'  匹配结果为'<To serve man> for dinner.>' 贪心匹配
##r'<.*?>' 匹配结果为'<To serve man>'              非贪心匹配
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值