自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

簡單介紹Python正則表達(dá)式

開發(fā) 后端
下面的文章主要介紹的是python正則表達(dá)式的三種基本表達(dá)式,其中包括:re的幾個(gè)函數(shù),re的幾個(gè)函數(shù)產(chǎn)生方式,和matchobject

python正則表達(dá)式學(xué)習(xí),python正則是我們常用的計(jì)算機(jī)語言,應(yīng)用非常廣泛,下面的額文章就詳細(xì)的介紹用python正則表達(dá)式來做一些復(fù)雜字符串分析,提取想要的信息夠用就行,一下就是相關(guān)的詳細(xì)的介紹。

正則表達(dá)式中特殊的符號(hào):

“.” 表任意字符
“^ ” 表string起始
“$” 表string 結(jié)束
“*” “+” “?” 跟在字符后面表示,0個(gè)——多個(gè), 1個(gè)——多個(gè), 0個(gè)或者1個(gè)
*?, +?, ?? 符合條件的情況下,匹配的盡可能少//限制*,+,?匹配的貪婪性
{m} 匹配此前的字符,重復(fù)m次
{m,n} m到n次,m,n可以省略

舉個(gè)例子 ‘a(chǎn).*b’ 表示a開始,b結(jié)束的任意字符串
a{5} 匹配連續(xù)5個(gè)a

[] 表一系列字符 [abcd] 表a,b,c,d [^a] 表示非a
| A|B 表示A或者B , AB為任意的python正則表達(dá)式另外|是非貪婪的如果A匹配,則不找B
(…) 這個(gè)括號(hào)的作用要結(jié)合實(shí)例才能理解, 用于提取信息

  1. d [0-9]  
  2. D 非 \d  
  3. s 表示空字符  
  4. S 非空字符  
  5. \w [a-zA-Z0-9_]  
  6. \W 非 \w  
  7.  

一:re的幾個(gè)函數(shù)

1: compile(pattern, [flags])
根據(jù)python正則表達(dá)式字符串 pattern 和可選的flags 生成正則表達(dá)式 對象生成正則表達(dá)式 對象(見二)其中flags有下面的定義:

I 表示大小寫忽略
L 使一些特殊字符集,依賴于當(dāng)前環(huán)境
M 多行模式 使 ^ $ 匹配除了string開始結(jié)束外,還匹配一行的開始和結(jié)束
S “.“ 匹配包括‘\n’在內(nèi)的任意字符,否則 . 不包括‘\n’
U Make \w, \W, \b, \B, \d, \D, \s and \S dependent on the Unicode character properties database
X 這個(gè)主要是表示,為了寫正則表達(dá)式,更可毒,會(huì)忽略一些空格和#后面的注釋

其中S比較常用應(yīng)用形式如下

  1. import re  
  2. re.compile(……,re.S)  

2: match(pattern,string,[,flags])讓string匹配,pattern,后面分flag同compile的參數(shù)一樣返回MatchObject 對象

3: split( pattern, string[, maxsplit = 0])用pattern 把string 分開

  1. >>> re.split(‘\W+’, ‘Words, words, words.’)  
  2. ['Words', 'words', 'words', '']  

括號(hào)‘()’在pattern內(nèi)有特殊作用,請查手冊

4:findall( pattern, string[, flags])比較常用,從string內(nèi)查找不重疊的符合pattern正則表達(dá)式的表達(dá)式,然后返回list列表

5:sub( pattern, repl, string[, count])repl可以時(shí)候字符串,也可以式函數(shù)當(dāng)repl是字符串的時(shí)候,就是把string 內(nèi)符合pattern的子串,用repl替換了當(dāng)repl是函數(shù)的時(shí)候,對每一個(gè)在string內(nèi)的,不重疊的,匹配pattern的子串,調(diào)用repl(substring),然后用返回值替換

  1. substringre.sub(r’def\s+([a-zA-Z_][a-zA-Z_0-9]*)\s*\(\s*\):’,  
  2. … r’static PyObject*\npy_\1(void)\n{‘,  
  3. … ‘def myfunc():’)  
  4. ’static PyObject*\npy_myfunc(void)\n{‘  
  5. >>> def dashrepl(matchobj):  
  6. … if matchobj.group(0) == ‘-’: return ‘ ‘  
  7. … else: return ‘-’  
  8. >>> re.sub(‘-{1,2}’, dashrepl, ‘pro—-gram-files’)  
  9. ‘pro–gram files’  
  10.  

二:re的幾個(gè)函數(shù)產(chǎn)生方式

通過 re.compile(pattern,[flags])回match( string[, pos[, endpos]]) ;返回string[pos,endpos]匹配pattern的MatchObject

  1. split( string[, maxsplit = 0])  
  2. findall( string[, pos[, endpos]])  
  3. sub( repl, string[, count = 0])  

這幾個(gè)函數(shù)和re模塊內(nèi)的相同,只不過是調(diào)用形式有點(diǎn)差別re.幾個(gè)函數(shù)和 正則表達(dá)式對象的幾個(gè)函數(shù),功能相同,但同一程序如果多次用的這些函數(shù)功能,正則表達(dá)式對象的幾個(gè)函數(shù)效率高些#p#

三:matchobject

通過 re.match(……) 和 re.compile(……).match返回該對象有如下方法和屬性:

方法:

  1. group( [group1, ...])  
  2. groups( [default])  
  3. groupdict( [default])  
  4. start( [group])  
  5. end( [group])   
  6.  

的***方法,就是舉個(gè)例子

  1. matchObj = re.compile(r”(?P\d+)\.(\d*)”)  
  2. m = matchObj.match(‘3.14sss’)  
  3. #m = re.match(r”(?P\d+)\.(\d*)”, ‘3.14sss’)  
  4.  
  5. print m.group()  
  6. print m.group(0)  
  7. print m.group(1)  
  8. print m.group(2)  
  9. print m.group(1,2)  
  10.  
  11. print m.group(0,1,2)  
  12. print m.groups()  
  13. print m.groupdict()  
  14.  
  15. print m.start(2)  
  16. print m.string  
  17.  

輸出如下:

  1. 3.14  
  2. 3.14  
  3. 3  
  4. 14  
  5. (‘3′, ‘14′)  
  6. (‘3.14′, ‘3′, ‘14′)  
  7. (‘3′, ‘14′)  
  8. {‘int’: ‘3′}  
  9. 2  
  10. 3.14sss  

所以group() 和group(0)返回,匹配的整個(gè)表達(dá)式的字符串
另外group(i) 就是python正則表達(dá)式中用第i個(gè)“()” 括起來的匹配內(nèi)容
(‘3.14′, ‘3′, ‘14′)最能說明問題了。

以上的文章就是我們對其的相關(guān)介紹,希望大家有所收獲。

【編輯推薦】

  1. Python編程語言在未來的發(fā)展趨勢
  2. Python多線程具體運(yùn)用的方法
  3. Python編程語言的發(fā)展歷程介紹
  4. Python編程語言在網(wǎng)站開發(fā)中的妙用
  5. Python編程語言與Zpoe之間不解的情緣
責(zé)任編輯:佚名 來源: 電子工業(yè)出版社
相關(guān)推薦

2011-06-16 15:40:28

正則表達(dá)式

2011-06-16 16:05:23

正則表達(dá)式

2024-09-14 09:18:14

Python正則表達(dá)式

2021-01-27 11:34:19

Python正則表達(dá)式字符串

2016-12-05 17:03:59

用法正則表達(dá)式

2010-03-25 18:25:36

Python正則表達(dá)式

2018-09-27 15:25:08

正則表達(dá)式前端

2020-09-04 09:16:04

Python正則表達(dá)式虛擬機(jī)

2010-03-01 15:51:59

Python則表達(dá)式

2019-12-10 10:40:57

Python正則表達(dá)式編程語言

2011-04-25 08:44:34

C#正則表達(dá)式

2010-03-18 12:40:47

python正則表達(dá)式

2009-08-14 17:52:30

C#表達(dá)式工具

2009-02-18 09:48:20

正則表達(dá)式Java教程

2009-09-16 18:19:34

正則表達(dá)式組

2011-06-02 12:34:16

正則表達(dá)式

2017-05-12 10:47:45

Linux正則表達(dá)式程序基礎(chǔ)

2019-07-17 15:45:47

正則表達(dá)式字符串前端

2022-03-28 06:19:14

正則表達(dá)式開發(fā)

2010-03-11 17:57:48

Python正則表達(dá)式
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)