1. 程式人生 > >正則匹配match/search

正則匹配match/search

一、match和search的基本概念
re.match 嘗試從字串的起始位置匹配一個模式,如果不是起始位置匹配成功的話,match()就返回none。
re.search 掃描整個字串並返回第一個匹配成功的。
二、正則表示式模式
^ 匹配字串的開頭
$ 匹配字串的末尾。
. 匹配任意字元,除了換行符,當re.DOTALL標記被指定時,則可以匹配包括換行符的任意字元。
[…] 用來表示一組字元,單獨列出:[amk] 匹配 ‘a’,’m’或’k’
[^…] 不在[]中的字元:[^abc] 匹配除了a,b,c之外的字元。
* 匹配0個或多個的表示式。
+ 匹配1個或多個的表示式。
? 匹配0個或1個由前面的正則表示式定義的片段,非貪婪方式
{ n} 精確匹配 n 個前面表示式。例如, o{2} 不能匹配 “Bob” 中的 “o”,但是能匹配 “food” 中的兩個 o。
{ n,} 匹配 n 個前面表示式。例如, o{2,} 不能匹配”Bob”中的”o”,但能匹配 “foooood”中的所有 o。”o{1,}” 等價於 “o+”。”o{0,}” 則等價於 “o*”。
{ n, m} 匹配 n 到 m 次由前面的正則表示式定義的片段,貪婪方式
a| b 匹配a或b
(re) 匹配括號內的表示式,也表示一個組
\w 匹配字母數字及下劃線
\W 匹配非字母數字及下劃線
\s 匹配任意空白字元,等價於 [\t\n\r\f].
\S 匹配任意非空字元
\d 匹配任意數字,等價於 [0-9].
\D 匹配任意非數字
\A 匹配字串開始
\Z 匹配字串結束,如果是存在換行,只匹配到換行前的結束字串。
\z 匹配字串結束
\G 匹配最後匹配完成的位置。
\b 匹配一個單詞邊界,也就是指單詞和空格間的位置。例如, ‘er\b’ 可以匹配”never” 中的 ‘er’,但不能匹配 “verb” 中的 ‘er’。
\B 匹配非單詞邊界。’er\B’ 能匹配 “verb” 中的 ‘er’,但不能匹配 “never” 中的 ‘er’。
\n, \t, 等. 匹配一個換行符。匹配一個製表符。等
\1…\9 匹配第n個分組的內容。
\10 匹配第n個分組的內容,如果它經匹配。否則指的是八進位制字元碼的表示式。
三、參考程式碼

mylist = ['[email protected]','[email protected]','[email protected]']
for i in mylist:
    match_obj = re.match('\w{3,15}@(163|126)\.com$',i)
    if match_obj:
        print(match_obj.group())
        print(match_obj.group(1))
    else:
        print('沒有')

四、兩個的區別

re_obj = re.match('^4.*[369]$'
,'235434FDDHTFJ9')try: print(re_obj.group()) except Exception as e: print(e)
re_obj1 = re.search('4.*[369]$','235434FDDHTFJ9').group()
print(re_obj1)

五、匹配網頁程式碼

content1 = '<html><h1>hello world</h1></html>'
obj = re.match('<(?P<name1>[a-zA-Z0-9]+)><(?P<name2>
[a-zA-Z0-9]+)>(.*)</(?P=name2)></(?P=name1)>',content1)
if obj: print(obj.group(3)) else: print('0')

相關推薦

匹配match/search

一、match和search的基本概念 re.match 嘗試從字串的起始位置匹配一個模式,如果不是起始位置匹配成功的話,match()就返回none。 re.search 掃描整個字串並返回第一個匹配成功的。 二、正則表示式模式 ^ 匹配字串的開頭

Python 表示式,search(不要求從開頭匹配),findall(匹配所有),sub(替換),split(切割)

match()從開頭匹配。 search()不要求從開頭匹配,只會匹配第一個。 findall()匹配所有,返回列表。 sub()替換匹配到的所有子串為指定內容,並返回整個字串。 split()切割字串,返回列表。   demo.py(search,不要求從開頭匹配

java表示式 match find匹配位置

                如題,對於java正則表示式這幾個方法匹配一次後的,匹配位置搞不太清楚,就寫了幾個例子。如下:

JS中匹配的3個方法:match,exec,test

1. regExp.test(string)   該方法最簡單,在string中找到匹配regExp的字串則返回true,沒找到匹配的字串則返回false 2. regExp.exec(string)   該方法稍微複雜些。   當regExp沒有全域性標誌時,其返回值為字串陣列:陣列的第0號元素為

python中匹配字符配置單詞邊界不生效的解決辦法

re python duoceshi #-*-coding:utf-8-*-import rename="duoceshi"p= re.compile(‘\bduoceshi\b‘)f = p.search(name)if f: print f.group()################

匹配 替換..追加..

bbs csdn 正則 flow code pan net eval nbsp 這裏都是以 圖片中的元素為例: 匹配出IMG標簽中alt的值: 1 Regex reg = new Regex(@"(?is)(?<=<img[^>]*)[^""]*(?

day11 grep匹配

collect lec linux 取反 pat 至少 判斷 con set ps aus | trep nginx # 查看所有正在運行的nginx任務 別名路徑: alias test_cmd=‘ls -l‘ PATH路徑: 臨時修改:

常用的匹配

marked clas 字符串 輸入 har round back [0 num 1.判斷只能輸入數字和字母 var num_char = /^[0-9A-Za-z]+$/;   ^ :代表匹配字符串開始位置;   [0-9A-Za-z]+ :[0-9A-Za-z]匹配數

js 對表單的一些驗證及匹配

攻擊 update 匹配規則 asc htm out gin lease public 利用的是jq的validate.js 詳見菜鳥教程http://www.runoob.com/jquery/jquery-plugin-validate.html 以下是我測試的幾個文件

匹配所有的a標簽

結束 strong 分組 正則匹配 ref val 所有 a標簽 解釋 <a\b[^>]+\bhref="([^"]*)"[^>]*>([\s\S]*?)</a> 分組1和分組2即為href和value 解釋: <a\b

關於JAVA匹配空白字符的問題(全角空格與半角空格)

轉義 空白 測試 rgs com text color 如何 clas 今天遇到一個字符串,怎麽匹配空格都不成功!!! 我把空格復制到test.properties文件 顯示“\u3000” ,這是什麽? 這是全角空格!!! 查了一下 \s

匹配<img>

普通 空白字符 展開 反向引用 功能 php php應用 換行 一個 preg_match_all(‘/<img(.*?)src=\"(.*?)\"(.*?)>/is‘, $content, $matches); matches[0] 整個img標簽 match

js匹配的出鏈接地址

鏈接地址 匹配 ase lower length ont 正則匹配 nbsp case content為需要匹配的值 var b=/<a([\s]+|[\s]+[^<>]+[\s]+)href=(\"([^<>"\‘]*)\"|\‘([^

awk結合匹配

需要 上海 所有 統計 技術 領域 panda -1 數據處理 利用awk分析data.csv中label列各取值的分布. 在終端執行head data.csv查看數據: 1 name,business,label,label_name 2 滄州光松房屋拆遷有限公

匹配方法

blank csdn 關於 expr 取ip地址 數值 換ip 表達式 java 這裏是幾個主要非英文語系字符範圍(google上找到的): 2E80~33FFh:中日韓符號區。收容康熙字典部首、中日韓輔助部首、註音符號、日本假名、韓文音符,中日韓的符號、標點、帶圈或帶括

修正匹配日期---基於網絡未知大神的

http 日期 bsp question ges 基於 就會 貢獻 工作 今天工作時需要用到日期格式檢驗,於是發現未知的大神貢獻的一套正則表達式【1】,看起來很復雜; 但是經過測試發現有些問題: ((\d{2}(([02468][048])|([13579][26]

java匹配

java 成功 println 字符 示例代碼 括號 lan string main java正則提取需要用到Matcher類,下面給出案例示例供參考需要提取車牌號中最後一個數字,比如說:蘇A7865提取5,蘇A876X提取6import java.util.regex.M

python3 匹配[^abc]和(?!abc)的區別(把多個字符作為一個整體匹配排除)

mat obj python str 效果 目的 str1 排除 blog 目的:把數字後面不為abc的字符串找出來 如1ab符合要求,2abc不符合要求 1 str = ‘1ab‘ 2 out = re.match(r‘\d+(?!abc)‘,str) 3 4

python匹配——中文字符的匹配

pri bsp odi col div class cnblogs mat 結果 # -*- coding:utf-8 -*- import re ‘‘‘python 3.5版本 正則匹配中文,固定形式:\u4E00-\u9FA5 ‘‘‘ words = ‘stud

php 匹配出a標簽級a標簽中的內容

har set ext htm file 鏈接地址 header char pre <?phpheader("Content-type: text/html; charset=utf-8"); $str=file_get_contents("https://www.