1. 程式人生 > >python裡使用正則表示式的前向搜尋或後向搜尋模式

python裡使用正則表示式的前向搜尋或後向搜尋模式

 在許多的情況下,很多要匹配內容是一起出現,或者一起不出現的。比如《》,< >,這樣的括號,不存在使用半個的情況。因此,在正則表示式裡也有一致性的判斷,要麼兩個尖括號一起出現,要麼一個也不要出現。怎麼樣來實現這種判斷呢?針對這種情況得引入新的正則表示式的語法:(?=pattern),這個語法它會向前搜尋或者向後搜尋相關內容,如果不會出現就不能匹配。不過,這個匹配不會消耗任何輸入的字元,它只是檢視一下。例子如下:
 
#python 3.6
#蔡軍生 
#http://blog.csdn.net/caimouse/article/details/51749579
#
import re

address = re.compile(
    '''
    # A name is made up of letters, and may include "."
    # for title abbreviations and middle initials.
    ((?P<name>
       ([\w.,]+\s+)*[\w.,]+
     )
     \s+
    ) # name is no longer optional

    # LOOKAHEAD
    # Email addresses are wrapped in angle brackets, but only
    # if both are present or neither is.
    (?= (<.*>$)       # remainder wrapped in angle brackets
        |
        ([^<].*[^>]$) # remainder *not* wrapped in angle brackets
      )

    <? # optional opening angle bracket

    # The address itself: 
[email protected]
(?P<email> [\w\d.+-]+ # username @ ([\w\d.]+\.)+ # domain name prefix (com|org|edu) # limit the allowed top-level domains ) >? # optional closing angle bracket ''', re.VERBOSE) candidates = [ u'First Last <
[email protected]
>', u'No Brackets [email protected]', u'Open Bracket <[email protected]', u'Close Bracket [email protected]>', ] for candidate in candidates: print('Candidate:', candidate) match = address.search(candidate) if match: print(' Name :', match.groupdict()['name']) print(' Email:', match.groupdict()['email']) else: print(' No match')


結果輸出如下:
Candidate: First Last <[email protected]>
  Name : First Last
  Email: [email protected]
Candidate: No Brackets [email protected]
  Name : No Brackets
  Email: [email protected]
Candidate: Open Bracket <[email protected]
  No match
Candidate: Close Bracket [email protected]>

  No match

Python遊戲開發入門

你也能動手修改C編譯器

紙牌遊戲開發

五子棋遊戲開發


相關推薦

表示式之分組(捕獲)、引用

       分組          正則表示式中的分組又稱為子表示式,就是把一個正則表示式的全部或部分當做一個整體進行   處理,分成一個或多個組。其中分組是使用“()”表示的。進行分組之後“()”裡面的內容就會被當   成一個整體來處理。          先看看一個

python使用表示式搜尋搜尋模式

 在許多的情況下,很多要匹配內容是一起出現,或者一起不出現的。比如《》,< >,這樣的括號,不存在使用半個的情況。因此,在正則表示式裡也有一致性的判斷,要麼兩個尖括號一起出現,要麼一個也不要

python學習-表示式及re模塊

我只 com 返回 現在 輸出 -1 完全匹配 group clu python中的所有正則表達式函數都在re模塊中。import re導入該模塊。 1,創建正則表達式對象 想re.compile()傳入一個字符串值,表示正則表達式,它將返回一個Regex模式對象。 創建一

Python表示式re.match的用法

re.match(pattern, string, flags) 第一個引數是正則表示式,如果匹配成功,則返回一個Match,否則返回一個None; 第二個引數表示要匹配的字串; 第三個引數是標緻位,用於控制正則表示式的匹配方式,如:是否區分大小寫,多行匹配等等。 需要特別注意的是,這個方法並不是完

Python表示式常用函式sub,search,findall,split等使用

1.原生字串r python中字串前面加上 r 表示原生字串,不會轉義。與大多數程式語言相同,正則表示式裡使用"\"作為轉義字元,這就可能造成反斜槓困擾。假如你需要匹配文字中的字元"\",那麼使用程式語言表示的正則表示式裡將需要4個反斜槓"\\":前兩個和後兩個分別用於在程式語言裡轉義成反斜

Python表示式對單個字元,多個字元,匹配邊界等使用

         Regular Expression,正則表示式,又稱正規表示式、正規表示法、正則表示式、規則表示式、常規表示法(英語:Regular Expression,在程式碼中常簡寫為regex、regexp或RE),是電腦科學的一個概

【轉】Python表示式(re模組)

【轉】Python之正則表示式(re模組) 本節內容 re模組介紹 使用re模組的步驟 re模組簡單應用示例 關於匹配物件的說明 說說正則表示式字串前的r字首 re模組綜合應用例項 參考文件 提示: 由於該站對MARKDOWN的表格支援的不是很好,所以本文中的表

[Python模組]表示式 re模組的使用與例項

很喜歡Python教材中的這句格言: 有些人面臨問題時會想:“我知道, 我將使用正則表示式來解決這個問題.” 這讓他們面臨的問題變成了兩個. ---------Jamie Zawinski 正則表示式的確好用,但是複雜的模式難以閱讀和維護,與其把花在研究用正則表示式處理複雜的問題上,

Python基礎--表示式

正則表示式是處理字串非常有用的工具,學習起來也足夠的蛋疼,為此總結一下正則表示式。Python中提供了re模組對正則表示式操作的功能。下面就瞭解正則表示式的元字元。 一.元字元 1."." 匹配換行符以外的任意單個字元 2."*" 匹配位於*之前的字元0或者多次 3."+"

Python爬蟲--表示式

什麼是正則表示式? 正則表示式,又稱規則表示式。(英語:Regular Expression,在程式碼中常簡寫為regex、regexp或RE),電腦科學的一個概念。正則表示式通常被用來檢索、替換那些符合某個模式(規則)的文字。 Python交流群:942913325 概念 正則表示式是對字

python RE表示式基本知識

1.  Python正則式的基本用法 1.1基本規則 1.2重複 1.2.1最小匹配與精確匹配 1.3前向界定與後向界定 1.4組的基本知識 2.  re模組的基本函式 2.1使用compile加速 2.2 match和sear

Python表示式的元字元

#!/usr/bin/env python # coding:UTF-8 """ @version: python3.x @author:曹新健 @contact: [email protected] @software: PyCharm @file: 2.正則表示式的元字元.py @

python 歷險記(六)— python表示式的使用(上篇)

目錄 引言 什麼是正則表示式? 正則表示式有什麼用? 正則表示式的語法及使用例項 正則表示式語法有哪些? 這些正則到底該怎麼用? 小結 參考文件 系列文章列表 引言 剛接觸正則表示式,我也曾被它們天書似的符號組合給嚇住,但經過一段時間的深入

2-Python爬蟲-表示式/XML/XPath/CSS

頁面解析和資料提取 結構資料: 先有的結構,在談資料 JSON檔案 JSON Path 轉換成Python型別進行操作(json類) XML檔案 轉換成python型別(xmltodict) X

python表示式:re模組

一.正則表示式中常用的字元含義 1、普通字元和11個元字元: 常用字元劃分 匹配範圍 示例資料 匹配的正則表示式 目標匹配的字串 普通字元 匹配自身 abc

python筆記-表示式常用函式

1、re.findall(pattern,string,flags=0) ——> list(列表) 列出字串中模式的所有匹配項,並作為一個列表返回。如果無匹配,則返回空列表! 與re.search()不一樣的地方: re.findall返回的是列表,re.search返回文字 re.findall

Python爬蟲——表示式必背基礎知識

Python網路爬蟲的正則表示式的總結 正則表示式是一個特殊的字元序列,它能幫助你方便的檢查一個字串是否與某種模式匹配。 re 模組使 Python 語言擁有全部的正則表示式功能。即在Python中匯入re模組:import re compile 函式根據一個模式字串和可選的標誌引數

Python表示式一次替換文章中所有特殊符號,如“-,$()#+&*”之類

一個簡單的正則表示式,可能會起大作用。比如說字符集就是這樣。一篇文章如果有各種亂碼,就可以用這種方法去除。如去除“-,$()#+&*”之類符號是很方便的。按照查詢、分割、替換的套路再做一做這樣的練習。今天晚了,後續還要操作檔案來完善這一點。 import re

Python常見表示式

一、校驗數字的表示式 數字:^[0-9]*$ n位的數字:^\d{n}$ 至少n位的數字:^\d{n,}$ m-n位的數字:^\d{m,n}$ 零和非零開頭的數字:^(0|[1-9][0-9]*)$ 非零開頭的最多帶兩位小數的數字:^([1-9][0-9]*)+(.[

python 爬蟲 表示式的詳細使用

提取 網頁內容 四大基本方法之 1.正則表示式 re模組 表示式 說明 [abc] abc中的一個 [a-z] a-z中的一個 [0-9] 0-9中的一個 [af0-9] a-f,0-9中的一個 [ab][cd][12] 三個中分