當前位置:首頁 » 編程語言 » 正則表達式python

正則表達式python

發布時間: 2022-01-10 03:01:58

❶ 想請教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

熱點內容
李小璐賈乃亮超級訪問 發布:2024-12-25 22:47:50 瀏覽:716
電信精品寬頻多ip路由如何配置 發布:2024-12-25 22:45:44 瀏覽:382
在linux下安裝python 發布:2024-12-25 22:40:42 瀏覽:337
路由搭建本地dns解析伺服器 發布:2024-12-25 22:31:58 瀏覽:211
ftp怎麼上傳5g以上大文件 發布:2024-12-25 22:31:15 瀏覽:159
吃雞如何聽聲辨位安卓 發布:2024-12-25 22:31:03 瀏覽:264
二分查找法php 發布:2024-12-25 22:31:01 瀏覽:501
c樹的存儲 發布:2024-12-25 22:26:07 瀏覽:47
麥塊有什麼伺服器 發布:2024-12-25 22:12:58 瀏覽:375
網上比較火的安卓系統是什麼 發布:2024-12-25 21:57:06 瀏覽:993