1樓:陽光的雷咩咩
不捕獲分組的意思,整個正規表示式的意思是abc的至少一次的組合(+是貪婪匹配,盡量多組,題目中結果共9個字母)。如果不加?:則所有abc(3個字母)都被放在結果裡。
python 中 re.sub 和 re.***pile 是啥意思呀?跪求大神解釋。
2樓:匿名使用者
在python中re是乙個常用的模組,主要是通過正規表示式進行字串處理。它的速度相對自己用 find, replace, split來說,通常更快。當然功能更強大。
正規表示式也是一種語言,所以如果通過re.***pile把它編譯成物件,會速度快很多。所以我們經常看到這樣的語句
exp = re.***pile("\s+")
m = exp.search(bigtext)
print m.group(0)
這段話等同於
m = re.search("\s+", bigtext)
print m.group(0)
re.sub則相當於字串操作中的replace,比如
sometext = re.sub("(?isu)\r\n", "\n", sometext)
上面這句話是將回車換行,變成換行。這是為了將windows下的文字檔案移到linux下,防止某些軟體不相容所做的處理。
簡單的說re.sub是做字串替換的, re.***pile是將正規表示式編譯成乙個物件,加快速度,並重複使用。
python正規表示式re.findall(r"\b\w+\b", s)中的r是什麼意思?
3樓:花臂華盛頓
在python的string前面加上『r』, 是為了告訴編譯器這個string是個raw string,不要轉意backslash '\' 。 例如,\n 在raw string中,是兩個字元,\和n, 而不會轉意為換行符。由於正規表示式和 \ 會有衝突,因此,當乙個字串使用了正規表示式後,最好在前面加上'r'。
例:r"\n\n\n\n\n\n」
作用:宣告後面的字串是普通字串
特殊字串中含有:轉義字元 \n \t 什麼什麼的用途:一般用在 正規表示式、檔案絕對位址
1,正規表示式:
2、系統路徑
這樣就不用專門的去處理引號之中的特殊字元了
4樓:匿名使用者
python中字串前面加上 r 表示原生字串,
與大多數程式語言相同,正規表示式裡使用"\"作為轉義字元,這就可能造成反斜槓困擾。假如你需要匹配文字中的字元"\",那麼使用程式語言表示的正規表示式裡將需要4個反斜槓"\\\\":前兩個和後兩個分別用於在程式語言裡轉義成反斜槓,轉換成兩個反斜槓後再在正規表示式裡轉義成乙個反斜槓。
python裡的原生字串很好地解決了這個問題,這個例子中的正規表示式可以使用r"\\"表示。同樣,匹配乙個數字的"\\d"可以寫成r"\d"。有了原生字串,你再也不用擔心是不是漏寫了反斜槓,寫出來的表示式也更直觀。
5樓:匿名使用者
re是python裡的正規表示式模組。findall是其中乙個方法,用來按照提供的正規表示式,去匹配文字中的所有符合條件的字串。返回結果是乙個包含所有匹配的list。
[1] 就是列表中的[1]啊
6樓:匿名使用者
1,表示匹配的值第乙個字串
7樓:鐘桑揚
延伸閱讀:python的 內建函式 和 subprocess 。此文是本系列的第三篇文章了,和之前一樣,內容出自官方文件,但是會有自己的理解,並非單純的翻譯。
所以,如果我理解有誤,歡迎指正,謝謝。
本模組提供了和perl裡的正規表示式類似的功能,不關是正規表示式本身還是被搜尋的字串,都可以是unicode字元,這點不用擔心,python會處理地和ascii字元一樣漂亮。
正規表示式使用反斜桿(\)來轉義特殊字元,使其可以匹配字元本身,而不是指定其他特殊的含義。這可能會和python字面意義上的字串轉義相衝突,這也許有些令人費解。比如,要匹配乙個反斜桿本身,你也許要用'\\\\'來做為正規表示式的字串,因為正規表示式要是\\,而字串裡,每個反斜桿都要寫成\\。
你也可以在字串前加上 r 這個字首來避免部分疑惑,因為 r 開頭的python字串是 raw 字串,所以裡面的所有字元都不會被轉義,比如r'\n'這個字串就是乙個反斜桿加上一字母n,而'\n'我們知道這是個換行符。因此,上面的'\\\\'你也可以寫成r'\\',這樣,應該就好理解很多了。可以看下面這段:
8樓:匿名使用者
subn後面的中括號表示返回結果的iterable(迭代器),第2項,是說匹配的次數。
這個字串被匹配之後,替換了11次,因為每乙個字元都是符合\w的。就都替換為hi了,然後返回了乙個元組: ("hihihihihihihihihihihi",11) , 故此[1]就是11.
python正規表示式中re.m 是什麼意思
9樓:南瓜蘋果
python正規表示式中re.m的意思是:多行匹配,影響 ^ 和 $。
正規表示式可以包含一些可選標誌修飾符來控制匹配的模式。修飾符被指定為乙個可選的標誌。多個標誌可以通過按位 or(|) 它們來指定。
如 re.i | re.m 被設定成 i 和 m 標誌:
re.i:使匹配對大小寫不敏感。
re.l:做本地化識別(locale-aware)匹配。
re.s:使 . 匹配包括換行在內的所有字元。
re.u:根據unicode字符集解析字元。這個標誌影響 \w, \w, \b, \b。
re.x:該標誌通過給予你更靈活的格式以便你將正規表示式寫得更易於理解。
擴充套件資料
正規表示式的模式有i、l、m、s、x、u六種模式:
1、i (ignorecase) , 忽略大小寫的匹配模式。
2、l (locale),字符集本地化。
使預定字元類 \w \w \b \b \s \s 取決於當前區域設定,比如在轉義符\w,在英文環境下,它代表[a-za-z0-9_],即所以英文本元和數字。如果在乙個法語環境下使用,預設設定下,不能匹配"é" 或 ""。加上這l選項和就可以匹配了,不常用。
3、m (multiline),多行模式。
改變 ^ 和 $ 的行為,^匹配開始位置,這種模式下匹配每一行的開始,$匹配結束位置,這種模式下匹配每一行的結束。
4、s (dotall),點任意匹配模式。
此模式下.可匹配任何字元,包括換行符。
5、x (verbose),冗餘模式。
這個模式下正規表示式可以是多行,忽略空白字元,並可以加入註釋,方便理解。
6、u (unicode),unicode定義模式。
使預定字元類 \w \w \b \b \s \s \d \d 取決於unicode定義的字元屬性。
10樓:紫薇參星
正規表示式中的re.m表示將字串視為多行,從而^匹配每一行的行首,$匹配每一行的行尾
我給你個python語言的例子,你看看吧
這個程式是匹配冒號加乙個空格後的數字串,中間有換行符\n所以用多行匹配re.m
#!/usr/bin/python3
import re
line = "if_mib::=counter32: 12345\nif_mib::=counter32: 1234556";
result = re.findall( r'(?<=\:\s)\d+$', line, re.m)
if result:
print (result)
else:
print ("nothing found!!")
執行結果
['12345', '1234556']
在python的正規表示式中例題中pattern = re.***pile(r'\d+') r'\d+'是什麼意思呢?
11樓:陽光的雷咩咩
r的意思是不轉義,即\表示原樣的\。否則有可能被檢視按\d為乙個字元解析轉義。
12樓:大話殘劍
\d是匹配數字字元[0-9],+匹配乙個或多個
放在一起是匹配乙個或多個數字字元,比如:』1『、』34『、』9999『
python xx=re.***pile(r'「abc「,string1)裡面r的作用是什麼?
13樓:匿名使用者
r表示其後的字串按原樣表示,不使用轉義字元
"\n" 表示換行符
r"\n" 表示乙個斜槓加上字元n組成的字串
14樓:灰色
python xx=re.***pile(r'「abc「,string1)
r'...'表示將...轉義,相當於\,但是你這裡應該是少寫了乙個'吧
15樓:匿名使用者
python中轉義字元使用倒斜槓(\),輸入轉義字元\需要\\,才能列印乙個倒斜槓,通常,通過在字串的第乙個引號之前加上r,可以將該字串標記為原始字串,他不包括轉義字元。
初學者怎樣選擇適合自己的程式語言Python
對想學程式設計的初學者而言剛開始選著語言時不知道該選什麼 什麼語 初學者該如何選擇程式語言 流行程式語言介紹,想學程式設計但不知選哪種語言,不妨來這兒看看!程式語言並沒有好壞之分,只是要看自己的應用領域,只有適不適合沒有好還是不好,可以參考一下這篇文章 什麼是計算機程式設計,程式語言有哪些,我該選擇...
「意思」是什麼意思?意思的意思是什麼
意思的意義有多種,如思想 心思 意義 道理 意圖 用意 意志 神情 情趣 趣味等等。引申指之意,代表心意的宴請或禮品 意見,想法跡象,苗頭 象徵性的表示等。1 出處 晉代葛洪 抱朴子 遐覽 雖充門人之灑掃,既才識短淺,又年尚少壯,意思不專,俗情未盡,不能大有所得。唐代韓愈 與馮宿 書 辱示 初筮賦 ...
出類拔萃的意思,出類拔萃的意思
成語 出類拔萃 拼音 ch l i b cu 解釋 拔 超出 類 同類 萃 原為草叢生的樣子,引伸為聚集。超出同類之上。多指人的品德才能。指品行 才幹大大高出同類而拔尖 出類拔萃的意思是什麼 出類拔萃的意思 超出同類之上,多指人的品德才能。出類拔萃 ch l i b cu 1.解釋 拔 超出 類 同...