首页 > 代码库 > python 学习4 正则表达式
python 学习4 正则表达式
符号 | 说明 | 举例 |
literal | 匹配字符串的值 | foo |
re1|re2 | 匹配正则表达式re1或re2 | foo|bar |
. | 匹配任何字符(换行符除外) | b.b |
^ | 匹配字符串的开始 | ^Dear |
$ | 匹配字符串的结尾 | /bin/*sh$ |
* | 匹配前面出现的正则表达式0次或多次 | [A-Za-z0-9]* |
+ | 匹配前面出现的正则表达式1次或多次 | [a-z]+\.com |
? | 匹配前面出现的正则表达式0次或多次 | goo? |
{N} | 匹配前面出现的正则表达式N次 | [0-9]{3} |
{M,N} | 匹配重复出现M-N次的正则表达式 | [0-9]{5,9} |
[...] | 匹配字符组里出现的任意一个字符 | [aeiou] |
[..x-y..] | 匹配从字符x到y中的任意一个字符 | [0-9],[A-Za-z] |
[^...] | 不匹配此字符集中出现的任何一个字符, 包括某一范围的字符 | [^A-Za-z0-9_] |
(*|+|?|{}) | 用于上面出现的任何"非贪婪"版本 重复匹配次数符号(*,+,?,{}) | .*?[a-z] |
(...) | 匹配封闭括号中正则表达式(RE),并保持为子组 | ([0-9]{3})?,f(oo|u)bar |
特殊符号 | ||
\d | 匹配任何数字,和[0-9] (\D 是\d 的反义:任何非数符号) | data\d+.txt |
\w | 匹配任何数字字母字符 (\W 是\w 的反义) | [A-Za-z_]\w+ |
\s | 匹配任何空白符,和[\n\t\r\v\f] (\S 是\s 的反义) | of\sthe |
\b | 匹配单词边界 (\B 是\b 的反义) | \bThe\b |
\nn | 匹配已保存的子组 | price: \16 |
\c | 逐一匹配特殊字符c | \.,\\,\* |
\A(\Z) | 匹配字符串的起始(结束) | \ADear |
常见的正则表达式函数与方法 | ||
compile(pattern,flags=0) | 对正则表达式pattern进行编译,并返回一个regex对象 | |
match(pattern,string,flags=0) | 用正则表达式pattern匹配字符串string, 匹配成功返回匹配对象,否则返回None | |
search(pattern,string,flags=0) | 用正则表达式pattern匹配字符串string的第一次出现, 匹配成功返回匹配对象,否则返回None | |
findall(pattern,string[,flags]) | 在字符串string中查找正则表达式模式pattern的所有(非重复)出现, 返回一个匹配对象的列表 | |
finditer(pattern,string[,flags]) | 搜索string,返回一个顺序访问每一个匹配结果(Match对象)的迭代器 | |
split(pattern,string,max=0) | 将string 按pattern模式分割后返回列表。 max用于指定最大分割次数,不指定将全部分割。 | |
sub(pattern,rep1,string,max=0) | 使用repl替换string中每一个匹配pattern的子串后返回替换后的字符串。 | |
group(num=0) | 返回全部匹配对象 | |
groups() | 返回一个包含全部匹配的子元组的元组 |
关于贪婪匹配和非贪婪匹配举例:
1 import re 2 3 data=http://www.mamicode.com/‘Thu Nov 29 01:14:11 2001::sbitp@mjuoeyjb.org::6777874277-5-8‘ 4 5 6 #非贪婪匹配 7 patt4=‘.+?(\d+-\d+-\d+)‘ 8 m=re.match(patt4, data) 9 print(m.group(1))10 11 #贪婪匹配12 13 patt5=‘.+(\d+-\d+-\d+)‘14 m=re.match(patt5, data)15 print(m.group(1))
输出结果:
6777874277-5-87-5-8
python 学习4 正则表达式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。