欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

python正則是什么

林子帆2年前21瀏覽0評論

python正則是什么?

正則表達式是一個強大的字符串處理工具方法,關于字符串的操作絕大部分都可以使用正則表達式來解決,爬蟲工作者更為重要,每天和字符串打交道,正則表達式更是不可或缺的技能,正則表達式的在不同的語言中使用方式可能不一樣,不過只要學會了任意一門語言的正則表達式用法,其他語言中大部分也只是換了個函數的名稱而已,本質都是一樣的。

分享一下我學習正則表達式的參考資料鏈接: https://www.runoob.com/python/python-reg-expressions.html

下面,我來介紹一下python中的正則表達式是怎么應用的

一.python中的正則表達式大致分為:

1.1. 元字符

1.2. 模式

1.3. 函數

1.4. re 內置對象用法

1.5. 分組用法

1.6. 環視用法

二.所有關于正則表達式的操作都使用 python 標準庫中的 re 模塊

小例子:

import re

s1 = 'hello World!'

regex = re.compile(s1, re.I)

print regex.match(s).group()

三.函數

簡單分享一下三個函數match search compile,可以見下面圖

四.分享一個找到的筆記實例

正則表達式實例:

#!/usr/bin/python

import re

line = "Cats are smarter than dogs"

matchObj = re.match( r'(.*) are (.*?) .*', line, re.M|re.I)

if matchObj:

print "matchObj.group() : ", matchObj.group()

print "matchObj.group(1) : ", matchObj.group(1)

print "matchObj.group(2) : ", matchObj.group(2)

else:

print "No match!!"

正則表達式:

r'(.*) are (.*?) .*'

解析:

首先,這是一個字符串,前面的一個 r 表示字符串為非轉義的原始字符串,讓編譯器忽略反斜杠,也就是忽略轉義字符。但是這個字符串里沒有反斜杠,所以這個 r 可有可無。

(.*) 第一個匹配分組,.* 代表匹配除換行符之外的所有字符。

(.*?) 第二個匹配分組,.*? 后面多個問號,代表非貪婪模式,也就是說只匹配符合條件的最少字符

后面的一個 .* 沒有括號包圍,所以不是分組,匹配效果和第一個一樣,但是不計入匹配結果中。

matchObj.group() 等同于 matchObj.group(0),表示匹配到的完整文本字符

matchObj.group(1) 得到第一組匹配結果,也就是(.*)匹配到的

matchObj.group(2) 得到第二組匹配結果,也就是(.*?)匹配到的

因為只有匹配結果中只有兩組,所以如果填 3 時會報錯。

五.可以先把文檔過一遍,用到的時候多練習,熟能生巧。