1樓:花臂華盛頓
在python的string前面加上『r』, 是為了告訴編譯器這個string是個raw string,不要轉意backslash '\' 。 例如,\n 在raw string中,是兩個字元,\和n, 而不會轉意為換行符。由於正規表示式和 \ 會有衝突,因此,當一個字串使用了正規表示式後,最好在前面加上'r'。
例:r"\n\n\n\n\n\n」
作用:宣告後面的字串是普通字串
特殊字串中含有:轉義字元 \n \t 什麼什麼的用途:一般用在 正規表示式、檔案絕對地址
1,正規表示式:
2、系統路徑
這樣就不用專門的去處理引號之中的特殊字元了
2樓:匿名使用者
python中字串前面加上 r 表示原生字串,
與大多數程式語言相同,正規表示式裡使用"\"作為轉義字元,這就可能造成反斜槓困擾。假如你需要匹配文字中的字元"\",那麼使用程式語言表示的正規表示式裡將需要4個反斜槓"\\\\":前兩個和後兩個分別用於在程式語言裡轉義成反斜槓,轉換成兩個反斜槓後再在正規表示式裡轉義成一個反斜槓。
python裡的原生字串很好地解決了這個問題,這個例子中的正規表示式可以使用r"\\"表示。同樣,匹配一個數字的"\\d"可以寫成r"\d"。有了原生字串,你再也不用擔心是不是漏寫了反斜槓,寫出來的表示式也更直觀。
3樓:匿名使用者
re是python裡的正規表示式模組。findall是其中一個方法,用來按照提供的正規表示式,去匹配文字中的所有符合條件的字串。返回結果是一個包含所有匹配的list。
[1] 就是列表中的[1]啊
4樓:匿名使用者
1,表示匹配的值第一個字串
5樓:鍾桑揚
延伸閱讀:python的 內建函式 和 subprocess 。此文是本系列的第三篇文章了,和之前一樣,內容出自官方文件,但是會有自己的理解,並非單純的翻譯。
所以,如果我理解有誤,歡迎指正,謝謝。
本模組提供了和perl裡的正規表示式類似的功能,不關是正規表示式本身還是被搜尋的字串,都可以是unicode字元,這點不用擔心,python會處理地和ascii字元一樣漂亮。
正規表示式使用反斜杆(\)來轉義特殊字元,使其可以匹配字元本身,而不是指定其他特殊的含義。這可能會和python字面意義上的字串轉義相沖突,這也許有些令人費解。比如,要匹配一個反斜杆本身,你也許要用'\\\\'來做為正規表示式的字串,因為正規表示式要是\\,而字串裡,每個反斜杆都要寫成\\。
你也可以在字串前加上 r 這個字首來避免部分疑惑,因為 r 開頭的python字串是 raw 字串,所以裡面的所有字元都不會被轉義,比如r'\n'這個字串就是一個反斜杆加上一字母n,而'\n'我們知道這是個換行符。因此,上面的'\\\\'你也可以寫成r'\\',這樣,應該就好理解很多了。可以看下面這段:
6樓:匿名使用者
subn後面的中括號表示返回結果的iterable(迭代器),第2項,是說匹配的次數。
這個字串被匹配之後,替換了11次,因為每一個字元都是符合\w的。就都替換為hi了,然後返回了一個元組: ("hihihihihihihihihihihi",11) , 故此[1]就是11.
在python的正規表示式中例題中pattern = re.***pile(r'\d+') r'\d+'是什麼意思呢?
7樓:陽光的雷咩咩
r的意思是不轉義,即\表示原樣的\。否則有可能被檢視按\d為一個字元解析轉義。
8樓:大話殘劍
\d是匹配數字字元[0-9],+匹配一個或多個
放在一起是匹配一個或多個數字字元,比如:』1『、』34『、』9999『
python正規表示式中re.***pile('\\\n')匹配的為什麼是換行符? 5
9樓:風馳電掣
你這個\\\n等同於\n,\n是換來行符的自意思bai,\後面如果不是什麼dut,r,n之類的,表示他zhi的\後面的那個東西是dao沒有意義的
\\,第一個反斜槓表示轉義,意思是第二反斜槓不再視為一個轉義字元。
在python看來\\字元,實際上只是一個\反斜槓。
python正規表示式中\w居然能匹配漢字,請問是怎麼一回事???
10樓:匿名使用者
\w匹配的是能組成單詞的字元,在python3 中re預設支援的是unicode字符集,當然也支援漢字
如果要讓\w僅支援英文,加個re.a標誌
print(re.findall(r"\w",s,re.a))這樣就不會匹配漢字了
python正規表示式中re.m 是什麼意思
11樓:南瓜蘋果
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定義的字元屬性。
12樓:紫薇參星
正規表示式中的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']
正規表示式js驗證,正規表示式js驗證
所求正規表示式如下 d d d d d 解釋 d 規則a,不允許右括號後接數字 規則b,不允許符號後面接符號或右括號 規則c,不允許左括號後接運算子 可以表示負號 d 規則d,不允許左括號前有數字或右括號 d 規則e,字串開頭必須是,數字,負號,左括號中的一個 d 規則f 結尾必須是數字或者右括號 ...
js正規表示式怎樣匹配,js正規表示式怎樣匹配之其中一個
不要亂用轉義符 var regexp g 或者var regexp g 正規表示式匹配的問題?括號寫錯了,正則更正為如下,就可以了 b endfunction endtask s s w b 我已經測試過了 af ai am ap ar b b2 isin js中的正規表示式怎樣將一個字串以 分隔開...
正規表示式dd的意思這個正規表示式什麼意思dd
表示行開頭 至少出現一次數字 任意字元和至少出現一次數字 出現1次或0次 行結尾。行開頭 d 數字 出現至少1次 任意字元,除換行和回車之外 出現0或1次 d 括號裡內出現0或1次 行結尾 擴充套件資料 常用正規表示式 2 域名 a za z0 9 a za z0 9 a za z0 9 a za ...