正規表示式是一種定義了搜尋模式的特徵序列,主要用於字串的模式匹配,或是字元的匹配。正規表示式是處理nlp的最基本手段之一,其可以幫助我們在格式複雜的的文字中抽取所需要的資訊。
nlp通常所需要處理的預料一部分來自web網頁的資訊抽取,一部分來自文字格式的文件,但是它們的格式不統一,大部分為半結構化文字,因此需要處理它們,將其轉變為結構化文字以便後續處理。
正規表示式的另乙個作用是去除雜訊。在處理大量文字片段的時候,有非常多的文字資訊與最終輸出的文字無關,這些無關片段稱之為雜訊(如url或鏈結、語氣助詞、標點符號等)。
在python中,我們用re模組來實現正規表示式。通過使用re的乙個方法--re.search。
通過使用re.search(regex,string)這個方法,我們可以檢測到string這個字串是否匹配正規表示式regex。如果匹配到會返回乙個match物件,如果沒有匹配到則返回none。
import re
text_string = '''正規表示式是一種定義了搜尋模式的特徵序列,主要用於字串的模式匹配,或是字元的匹配,正規表示式是處理nlp的最基本手段之一,其可以幫助我們在格式複雜的的文字中抽取所需要的資訊,'''
regex = '正則'
p_string = text_string.split(',') #以逗號為分隔符劃分原句
for line in p_string:
if re.search(regex,line) is not none: #查詢是否匹配
print(line) #如果匹配到,列印這行資訊
結果:
正規表示式是一種定義了搜尋模式的特徵序列符號含義.正規表示式是處理nlp的最基本手段之一
匹配任意乙個字元
如正規表示式
可以匹配
不能匹配
a.cabc
abdc
..tbat
it
import re
text_string = '''正規表示式是一種定義了搜尋模式的特徵序列,主要用於字串的模式匹配,或是字元的匹配,正規表示式是處理nlp的最基本手段之一,其可以幫助我們在格式複雜的的文字中抽取所需要的資訊,'''
regex = '正.'
p_string = text_string.split(',') #以逗號為分隔符劃分原句
for line in p_string:
if re.search(regex,line) is not none: #查詢是否匹配
print(line) #如果匹配到,列印這行資訊
結果
正規表示式是一種定義了搜尋模式的特徵序列符號含義^正規表示式是處理nlp的最基本手段之一
匹配開始的字串
''^a'' 代表的是匹配所有以a開頭的字串
$匹配結尾的字串
''a$'' 代表的是匹配所有以a結尾的字串
import re
text_string = '''正規表示式是一種定義了搜尋模式的特徵序列,主要用於字串的模式匹配,或是字元的匹配,正規表示式是處理nlp的最基本手段之一,其可以幫助我們在格式複雜的的文字中抽取所需要的資訊,'''
regex = '^正'
p_string = text_string.split(',') #以逗號為分隔符劃分原句
for line in p_string:
if re.search(regex,line) is not none: #查詢是否匹配
print(line) #如果匹配到,列印這行資訊
結果
正規表示式是一種定義了搜尋模式的特徵序列符號正規表示式是處理nlp的最基本手段之一
含義例子
[ ]匹配多個字元
''[bcr]at'' 代表匹配 ''bat'' ''cat'' ''rat''
[string1-string2]
匹配從string1到string2的所有字元
''[a-z]'' 代表從a-z的所有字元 ''[1-9]''代表從1-9的所有字元
正規表示式也使用的是「\」作為轉義符,所以會有困擾
符號含義
''\\\\''
前兩個和後兩個斜槓分別在程式語言中轉義為乙個反斜槓,然後這兩個反斜槓再在正規表示式中轉義為乙個反斜槓。
解決方法
符號含義
r''\\''
同上
基本正規表示式
匹配除了換行符以外的任意字元 w 匹配字母或數字或下劃線或漢字 字母大寫即反義 不匹配 s 匹配任意的空白符 字母大寫即反義 不匹配 d 匹配數字 字母大寫即反義 不匹配 b 匹配單詞的開始或結束 字母大寫即反義 不匹配 匹配字串的開始 匹配字串的結束 x 匹配除了x以外的任意字元 aeiou 匹配...
正規表示式 基本
字元 d任意乙個數字,0 9中任意乙個 d任意非數字 w任意乙個字母 下劃線 數字。即 a z a z 0 9 w表示除 0 9a za z 之外的字元 s匹配任何空白字元,包括空格 製表符 換頁符等等。等價於 f n r t v s匹配任何非空白字元。匹配任意乙個字元 如要匹配包括 n在內的所有字...
基本的正規表示式
附件一 正規表示式語法 字元 說明 將下一字元標記為特殊字元 文字 反向引用或八進位制轉義符。例如,n 匹配字元 n n 匹配換行符。序列 匹配 匹配 匹配輸入字串開始的位置。如果設定了 regexp 物件的 multiline 屬性,還會與 n 或 r 之後的位置匹配。匹配輸入字串結尾的位置。如果...