【学习记录】Python-Regular Expression

【学习记录】Python-Regular Expression

基本用法

  1. re.match('xxx',string_a):在字符串a的开头匹配xxx,如果匹配成功则返回值为1。
  2. re.search('xxx',string_a):在字符串a中匹配一个xxx,如果匹配成功则返回值为1。
  3. re.findall('xxx',string_a):在字符串a中匹配所有xxx,如果匹配成功则返回列表。
  4. re.finditer('xxx',string_a):在字符串a中匹配所有xxx,如果匹配成功则以迭代器返回。
  5. re.sub('xxx','aaa',string_a):将字符串a中的xxx替换为aaa,如果替换成功则返回替换后的字符串。
  6. re.xxx().start():返回匹配到的字符的起始位置。
  7. re.xxx().end():返回匹配到的字符的结束位置。
  8. re.xxx().span():返回匹配到的字符的起始和结束位置。

匹配符

  • ^:匹配字符串的开头。

    例:re.search('^xxx',string_a):在string_a的开头查找,如果符合则返回值为1,类似字符串函数中的string_a.startwith('xxx')

  • $:匹配字符串的末尾。

  • .:匹配除换行符外的任意字符。

  • [abcd]:匹配单个字符,abcd

  • [^abcd]:匹配除abcd 以外的字符。

  • [a-z]:匹配范围内的字符

  • *:重复匹配字符0次或多次。

  • +:重复匹配字符1次或多次。

  • ?:非贪婪方式。

  • \s:匹配空格符。

  • \S: 匹配非空格字符。

  • abc(xxx):匹配(match)abcxxx,但只提取(extract)xxx。

标志位

  • re.I 忽略大小写
  • re.L 表示特殊字符集 \w, \W, \b, \B, \s, \S 依赖于当前环境
  • re.M 多行模式
  • re.S 即为’ . ‘并且包括换行符在内的任意字符(’ . '不包括换行符)
  • re.U 表示特殊字符集 \w, \W, \b, \B, \d, \D, \s, \S 依赖于 Unicode 字符属性数据库
  • re.X 为了增加可读性,忽略空格和’ # '后面的注释

转义

在字符串前加上 r ,表明字符串为原始字符串常量(加上 u 为Unicode字符串常量,加上 b 为字节字符串常量),原始字符串常量可避免反斜杠 \ 的转义,例如:

print('This is a \n test')

结果会因为 \n 换行,而加上 r 则可以避免 n 的转义:

print(r'This is a \n test')

\n 不会引起换行,而是被打印出来。

r 在下面的非法字符匹配中有得到应用。

非法字符匹配

Windows中文件名不能包含 \ / : * ? " < > | 等非法字符,需要在处理文件名时将非法字符删除:

fileName = '\/:*?"<>|test.file'
invalidchar = r"[\/\\\:\*\?\"\<\>\|]"
newName = re.sub(invalidchar, '', fileName)

例子

  1. import re
    
  2. import re
    
  3. import re
    
  4. import re
    
  5. import re
    

实时更新中

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值