正則表達式python
❶ 想請教python 正則表達式
這你就需要了解正則表達式的貪婪匹配和非貪婪匹配
在此例中
#.*是貪婪匹配模式,所謂貪婪匹配就是在整個表達式匹配成功的前提下,盡可能多的匹配,
#也就是所謂的「貪婪」,通俗點講,就是看到想要的,有多少就撿多少,除非再也沒有想要的了。
#.*?是非貪婪模式,所謂非貪婪模式就是在整個表達式匹配成功的前提下,盡可能少的匹配,
#也就是所謂的「非貪婪」,通俗點講,就是找到一個想要的撿起來就行了,
#至於還有沒有沒撿的就不管了
#舉個例子
#字元串"abcdccd"
#那麼"a.*"匹配的是"abcdccd",貪婪模式,從a開始的我都要了
#"a.*?"匹配的是"a",非貪婪模式,滿足條件的情況下,我只要a就行了
#"a.*?d"匹配的是"abcd",非貪婪模式,我只要從a開始最快到d的字元串就行了
#"a.*d"匹配的是"abcdccd",貪婪模式,我只要從a開始,到最遠d的就可以了
不知道這樣講解時否明白
❷ python中正則表達式中的^怎麼用
你的意思是匹配字元串中的「^」,還是 正則表達式中 ^ 的用法;
#看你的描述大概是第二種
#^在正則表達式中表示匹配以xx開頭的字元
#比如:
importre
r=re.compile(r"^d+")
s="124,b45"
s2="as12"
r.findall(s)#['124']
r.findall(s2)#[]空數組,字元不是以數字開頭
❸ python 正則表達式
正則語法:
top|123
效果:
❹ python|正則表達式
\1指的就是捕獲組1的內容,具體內容你可以搜索下(也叫後向引用),/i是忽略大小寫,g是搜索所有內容,\b是指單詞的開頭或結尾
整個連起來/\b([a-z]+) \1\b/ig就表示在字元串中搜索重復的單詞(以字母開頭),忽略大小小,所以匹配會得到3組內容,即Is is、of of和up up
❺ python中的正則表達式中的 "|"
Python中re.findall()函數是要求正則表達式在捕獲第0組數據時,要在正則表達式上加小括弧才能捕獲.
也就是說如果你要獲取整個正則表達式匹配的數據(你這里是電子郵箱地址),需要在正則表達式外面加小括弧,
然後取第0捕獲組的數據(你這里是[x[0] for x in zhengze]),
因為findall函數把每一個匹配的多個捕獲組(就是你正則表達式中的小括弧中)的數據放到一個元組里,所以要用for循環把第0捕獲組的數據取出來.
具體程序改進如下
>>>zhengze=re.findall("([A-Za-z0-9]+@(163|qq|gmail).com)",txt)
>>>[x[0]forxinzhengze]
結果就是你要的郵箱列表了.
❻ python的正則表達式怎麼用
在ipython中測試一下代碼:(讀入一個圖片文件的地址字元串)
?
1
2
3
4
5
6
7
8
9
10
11
12
a = input("input a:\n")
print "the input method: ",a
b = raw_input("input b:\n")
print "the raw_input method: ",b
input a:
'/home/sunny/caffe-master/examples/images/cat.jpg'
the input method: /home/sunny/caffe-master/examples/images/cat.jpg
input b:
'/home/sunny/caffe-master/examples/images/cat.jpg'
the raw_input method: '/home/sunny/caffe-master/examples/images/cat.jpg'
另外,對於兩種輸入方式另一個直觀區別就是input自帶運算處理功能,也就是輸入算式的話會直接輸出結果,而raw_input會原汁原味(raw)地輸出:
?
1
2
3
4
#! -*- coding:utf-8 -*-
print raw_input(u'測試raw_input:\n')
print input(u'測試input:\n')
❼ python正則表達式匹配
import re
print(re.findall(r"[12|22]+3", "123223"))
❽ python 正則表達式.* 是什麼意思 詳細解釋
分開來說:
1、. 匹配任意除換行符「\n」外的字元;
2、*表示匹配前一個字元0次或無限次;
3、+或*後跟?表示非貪婪匹配,即盡可能少的匹配,如*?重復任意次,但盡可能少重復;
4、 .*? 表示匹配任意數量的重復,但是在能使整個匹配成功的前提下使用最少的重復。
如:a.*?b匹配最短的,以a開始,以b結束的字元串。如果把它應用於aabab的話,它會匹配aab和ab。
❾ python正則表達式
group和groups是兩個不同的函數。
一般,m.group(N) 返回第N組括弧匹配的字元。
而m.group() == m.group(0) == 所有匹配的字元,與括弧無關,這個是API規定的。
m.groups() 返回所有括弧匹配的字元,以tuple格式。
m.groups() == (m.group(0), m.group(1), ...)
對你給的例子:
m = re.match("([abc])+", "abc")
你的+號在括弧外面。括弧最多匹配到一個字元,要麼是a, 要麼是c,這個python引擎匹配的是末尾的c。
而m.group() == m.group(0) 這個返回的是整個匹配的字元串"abc".
關於捕獲型括弧在正則表達式里的用法,參見相關文檔。
參見http://..com/link?url=CltRBzI_-_jFl88a