正则使用注意事项
来源:互联网 发布:一建试题软件 编辑:程序博客网 时间:2024/05/22 00:52
字符相关
[ ] 内 元字符 不需要转义,但 - 和 + 号一定要转义
[ ] 内不管给出多少字符串,仅匹配一个字符
[^c-z] 脱字符只能放在最前面
[]内表示匹配非集合内的字符串
[]号外表示字符串开头表达式中不要随便加空格
能用 * + ? 时,不要用{0,9};
正则会对元字符 * + ? 进行优化,提高效率{1,9} 和 {9} 的区别,前者表示1到9之间都有,而后者表示必须是9个
[1-254] 不可能实现IP匹配
[0-9][0-5][0-4] 因为正则中最大的数字是9【?非贪婪模式】
* + ? 限定符
都是贪婪的,因为它们会尽可能多的匹配文字,只有在它们的后面加上一个?就可以实现非贪婪或最小匹配\A==^ \Z==$ 不匹配字符,仅用于定位
_两边不是单词边界
findall方法内的子组: 单个子组直接返回,多个子组以元祖形式返回
(?:…) 非捕获组【注意在 findall 方法下与(…..)的区别】
(?:….) 显示所有匹配到的内容
(……) 仅显示括号内匹配到的内容Python里数量词默认是贪婪的,总是尝试匹配尽可能多的字符;
假如需要匹配文本中的字符”\”,正则表达式里将需要4个反斜杠”\\\\”
中括号注意事项
sa = 'lvbu'stra = re.findall(r'[\w+]', sa)print(stra)# ['l', 'v', 'b', 'u']strb = re.findall(r'\w+', sa)print(strb)# ['lvbu']
中括号内用 + 号和在外用 + 号得到不一样的结果
边界符注意事项
在用 \b 时,必须加 r
在python字符串中,”b”是反斜杠字符,ASCII值是8。如果你没有使用 原始字符串(raw strings) 时,那么 Python 将会把 “\b” 转换成一个回退符,RE 将无法匹配到你所希望的。
print( re.search(r'er\b', 'never') )# <_sre.SRE_Match object; span=(3, 5), match='er'>print( re.search('er\b', 'never') )# Noneprint( re.search(r'er\B\w', 'nerev') )# <_sre.SRE_Match object; span=(1, 4), match='ere'>
阅读全文
0 0
- 正则表达式使用注意事项
- 正则使用注意事项
- java中使用正则表达式注意事项
- mongo索引使用正则表达式注意事项
- 正则表达式贪婪模式和使用点时的注意事项
- JS正则注意事项
- 正则表达式注意事项
- (正则表达式)注意事项
- java正则表达式注意事项
- Python正则化注意事项
- Masonry使用注意事项,原生约束使用注意事项
- JS里正则表达式的注意事项
- 【JavaScript】正则表达式验证邮箱的注意事项
- String 使用注意事项
- 笔记本使用前注意事项
- HashMap使用的注意事项
- Hibnerate Annotation使用注意事项
- JChatbox使用注意事项
- eclipse使用gitHub
- 《JavaScript DOM编程艺术》第十章 用javascript实现动画效果
- 线段树区间更新 Just a Hook
- 【脚本语言系列】关于Python持久化dbhash,你需要知道的事
- ssh登录
- 正则使用注意事项
- Go游戏服务器开发的一些思考(二):综合考察(上)
- PHP PDO::execute()执行insert into失败返回错误无错误消息的解决
- String、StringBuffer与StringBuilder之间区别
- CRC32
- IE11的一些小问题
- 使用cout输出16进制,8进制,2进制
- NMAP执行脚本smb-check-vulns.nse出错
- 只要会说“范围、时间、成本、质量”,鹦鹉都能成为项目经理