【Python】正則表達式

簡介

正規(guī)表達式(Regular Expression,簡寫為RE),是一個字符串模型,描述了某個句法的規(guī)則,可以用來在文本中進行匹配。
正則不是Python語言的產(chǎn)物,最初出現(xiàn)于形式化語言理論中?,F(xiàn)在很多語言支持了正則表達式,Python于1.5版本引入了re模塊,擁有了全部的正則表達式功能。


re模塊使用

方法

re.search()可用于掃描整個字符串并返回第一個成功的匹配。

語法
re.search(pattern, string, flags=0)
pattern 是用于匹配的正則表達式
string 是要進行掃描的字符串
flags 用于控制正則表達式的匹配方式
flags可選項
修飾符 描述 備注
re.I 使匹配對大小寫不敏感
re.S 使.匹配包括換行在內的所有字符 .說明見正則常用語法
re.U 根據(jù)Unicode字符集解析字符
語法示例
[Python Console]
>>> import re
>>> str = 'hello world'
>>> pattern = 'hello (.)orld'
>>> match = re.search(pattern, str)
>>> match.group()
'hello world'
>>> match.groups()
('w',)
示例說明

正則表達式語法在下方說明,先說明re模塊相關。

re.search()返回一個re.Match類對象,

可以對該對象使用:

  • group()方法獲取匹配到的完整字符串
  • groups()方法可以獲取匹配到的完整字符串中,匹配規(guī)則中占位符所對應的字符串

正則常用語法

總結了一些在此次工程中用到的正則語法。

占位符 語法 示例
() 對正則表達式分組并保存匹配的文本 示例1
. 用于匹配任意單個字符,換行符除外 示例1
* 將前方字符串匹配規(guī)則修改為匹配0~多個 示例2
+ 將前方字符串匹配規(guī)則修改為匹配1~多個 示例2類似
修飾前方字符串匹配規(guī)則,進行最短匹配
(又稱非貪婪模式。默認匹配模式為最長匹配,
會匹配目標字符串中最長符合規(guī)則的子串)
示例3
\s 匹配空白字符(空格,換行符等) 示例4
[...] 匹配一組字符,單獨列出:
[abc]匹配a,bc
[^...] 匹配不在[]中的字符:
[^abc]匹配除了a,b,c之外的字符

示例

示例2
[Python Console]
>>> import re
>>> str = 'hello world world'
>>> pattern = 'hello (.*)orld'
>>> match = re.search(pattern, str)
>>> match.group()
'hello world world'
>>> match.groups()
('world wo',)

說明:正則默認進行了最長匹配(又稱貪婪匹配),即在有多種符合規(guī)則的子串中(hello worldhello world world均符合規(guī)則),返回最長的子串。

示例3
[Python Console]
>>> import re
>>> str = 'hello world world'
>>> pattern = 'hello (.*?)orld'
>>> match = re.search(pattern, str)
>>> match.group()
'hello world'
>>> match.groups()
('wo',)

說明:與示例2最長匹配相對,?將匹配規(guī)則改為最短匹配(又稱非貪婪匹配)

示例4
[Python Console]
>>> import re
>>> str = 'hello world world'
>>> pattern = 'hello(\\s*?)world'
>>> match = re.search(pattern, str)
>>> match.group()
'hello world'
>>> match.groups()
(' ',)

說明:Python字符串中\字符需要轉義,\s匹配空格,*修飾匹配多個,?設置為最短匹配


需要轉義的字符

這里只總結了此次遇到的一些需要轉義的字符(前面加上\

* ( ) \

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 前言 字符串是編程中非常常用的數(shù)據(jù)結構,對它的操作處理也非常重要。所以學透本知識點,對以后開發(fā)過程中對字符串處理,...
    開發(fā)者也閱讀 851評論 0 4
  • 在使用爬蟲爬取數(shù)據(jù),或者做數(shù)據(jù)挖掘和分析的時候我們經(jīng)常會使用到正則表達式, 在Python中使用正則需要導入re包...
    MasterXiao閱讀 2,023評論 0 3
  • 正則表達式相關知識 在編寫處理字符串的程序或網(wǎng)頁時,經(jīng)常會有查找符合某些復雜規(guī)則的字符串的需要,正則表達式就是用于...
    Jason_c8d4閱讀 612評論 0 0
  • 正則表達式 1. 正則表達式概述 正則表達式,又稱正規(guī)表示式、正規(guī)表示法、正規(guī)表達式、規(guī)則表達式、常規(guī)表示法(英語...
    PythonMaO閱讀 1,331評論 0 1
  • 表情是什么,我認為表情就是表現(xiàn)出來的情緒。表情可以傳達很多信息。高興了當然就笑了,難過就哭了。兩者是相互影響密不可...
    Persistenc_6aea閱讀 129,655評論 2 7

友情鏈接更多精彩內容