python——正则表达式

由于我在txt里复制过来后,空格的个数就不知怎的乱了,所以我先把截图放上来,比较容易看,我会把文本放在文章末尾

#一些匹配时用的符号

 #这里是re模块中的核心函数

#提示:如果一个正则表达式需要重复的使用,可以通过compile函数编译正则表达式并创建出正则表达式对象。

# 通过迭代器取出匹配对象并获得匹配的内容

for temp in pattern.finditer(sentence):
    print(temp.group())

# 通过search函数指定搜索位置找出所有匹配
 

m = pattern.search(sentence)
while m:
    print(m.group())
    m = pattern.search(sentence, m.end()) #若此句未写,则会一直重复输出第一个相匹配的字段
        #m.end()返回上一个匹配的最后一个字符的索引值加1的值,本次搜索从此位置开始

 #这里是上面截图里的符号和函数

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 符号               		| 解释                                      		| 示例             		| 说明                                               						|
| ------------------------------   | -----------------------------------------   | ------------------------------   | ----------------------------------------------------------------------------------------------     	|
| .                  		| 匹配任意字符                              	| b.t			| 可以匹配bat / but / b#t / b1t等                    					|
| \\w                		| 匹配字母/数字/下划线                     	| b\\wt            		| 可以匹配bat / b1t / b_t等<br>但不能匹配b#t         					|
| \\s               		| 匹配空白字符(包括\r、\n、\t等)          	| love\\syou       		| 可以匹配love you                                   						|
| \\d                		| 匹配数字                                  		| \\d\\d           		| 可以匹配01 / 23 / 99等                             						|
| \\b                		| 匹配单词的边界                            	| \\bThe\\b        		|                                                    						|
| ^                  		| 匹配字符串的开始                          	| ^The            		| 可以匹配The开头的字符串                            					|
| $                  		| 匹配字符串的结束                          	| .exe$            		| 可以匹配.exe结尾的字符串                           					|
| \\W                 		| 匹配非字母/数字/下划线                   	| b\\Wt            		| 可以匹配b#t / b@t等<br>但不能匹配but / b1t / b_t等 				|
| \\S                 		| 匹配非空白字符                            	| love\\Syou      		| 可以匹配love#you等<br>但不能匹配love you           				|
| \\D                 		| 匹配非数字                               		| \\d\\D           		| 可以匹配9a / 3# / 0F等                             						|
| \\B                 		| 匹配非单词边界                            	| \\Bio\\B         		|                                                    						|
| []                 		| 匹配来自字符集的任意单一字符            	| [aeiou]          		| 可以匹配任一元音字母字符                           					|
| [^]                		| 匹配不在字符集中的任意单一字符            	| [^aeiou]         		| 可以匹配任一非元音字母字符                         					|
| *                  		| 匹配0次或多次                             	| \\w*             		|                                                    						|
| +                 		| 匹配1次或多次                             	| \\w+             		|                                                    						|
| ?                  		| 匹配0次或1次                              	| \\w?             		|                                                    						|
| {N}                		| 匹配N次                                  		| \\w{3}            		|                                                    						|
| {M,}               		| 匹配至少M次                              	| \\w{3,}           		|                                                    						|
| {M,N}              		| 匹配至少M次至多N次                       	| \\w{3,6}          		|                                                    						|
| \|                 		| 分支                                      		| foo\|bar         		| 可以匹配foo或者bar                                 						|
| (?#)               		| 注释                                      		|                  		|                                                    						|
| (exp)              		| 匹配exp并捕获到自动命名的组中             	|                  		|                                                    						|
| (?&nbsp;&lt;name&gt;exp) 	| 匹配exp并捕获到名为name的组中	|                  		|                                                    						|
| (?:exp)            		| 匹配exp但是不捕获匹配的文本               	|                  		|                                                    						|
| (?=exp)           		| 匹配exp前面的位置                         	| \\b\\w+(?=ing)     		| 可以匹配I'm dancing中的danc                        					|
| (?<=exp)           		| 匹配exp后面的位置                         	| (?<=\\bdanc)\\w+\\b 	| 可以匹配I love dancing and reading中的第一个ing    				|
| (?!exp)            		| 匹配后面不是exp的位置                     	|                  		|                                                    						|
| (?<!exp)           		| 匹配前面不是exp的位置                     	|                  		|                                                    						|
| *?                	 	| 重复任意次,但尽可能少重复 		| a.\*b<br>a.\*?b 		| 将正则表达式应用于aabab,前者会匹配整个字符串aabab,后者会匹配aab和ab两个字符串	|
| +?                 		| 重复1次或多次,但尽可能少重复 	|                  		|                                                    						|
| ??                 		| 重复0次或1次,但尽可能少重复 	|                  		|                                                    						|
| {M,N}?             		| 重复M到N次,但尽可能少重复 	|                  		|                                                    						|
| {M,}?              		| 重复M次以上,但尽可能少重复 	|                  		|                                                    						|
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
re模块中的核心函数。
----------------------------------------------------------------------------------------------------------------------------------------------------------
| 函数                                         			| 说明                                                         						|
| ----------------------------------------------------	| -------------------------------------------------------------------------------------------------	|
| compile(pattern, flags=0)                    		| 编译正则表达式返回正则表达式对象                             				|
| match(pattern, string, flags=0)              		| 用正则表达式匹配字符串 成功返回匹配对象 否则返回None         				|
| search(pattern, string, flags=0)             		| 搜索字符串中第一次出现正则表达式的模式 成功返回匹配对象 否则返回None 		|
| split(pattern, string, maxsplit=0, flags=0)  	| 用正则表达式指定的模式分隔符拆分字符串 返回列表              				|
| sub(pattern, repl, string, count=0, flags=0) 	| 用指定的字符串替换原字符串中与正则表达式匹配的模式 可以用count指定替换的次数 		|
| fullmatch(pattern, string, flags=0)          		| match函数的完全匹配(从字符串开头到结尾)版本                				|
| findall(pattern, string, flags=0)            		| 查找字符串所有与正则表达式匹配的模式 返回字符串的列表        				|
| finditer(pattern, string, flags=0)           		| 查找字符串所有与正则表达式匹配的模式 返回一个迭代器          				|
| purge()                                      		| 清除隐式编译的正则表达式的缓存                               					|
| re.I / re.IGNORECASE                         		| 忽略大小写匹配标记                                           					|
| re.M / re.MULTILINE                          		| 多行匹配标记                                                 					|
----------------------------------------------------------------------------------------------------------------------------------------------------------

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值