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                          		| 多行匹配標記                                                 					|
----------------------------------------------------------------------------------------------------------------------------------------------------------

 

發佈了10 篇原創文章 · 獲贊 12 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章