當前位置:首頁 » 編程語言 » python正則匹配中文

python正則匹配中文

發布時間: 2024-04-14 04:43:34

Ⅰ 如何用正則表達式提取字元串中的中英文

python re正則匹配中文,其實非常簡單,把中文的unicode字元串轉換成utf-8格式就可以了,然後可以在re中隨意調用
unicode中中文的編碼為/u4e00-/u9fa5,因此正則表達式u」[\u4e00-\u9fa5]+」可以表示一個或者多個中文字元
>>> import re

>>> s='中文:123456aa哈哈哈bbcc'.decode('utf8')
>>> s
u'\u4e2d\u6587\uff1a123456aa\u54c8\u54c8\u54c8bbcc'
>>> print s
中文:123456aa哈哈哈bbcc

>>> re.match(u"[\u4e00-\u9fa5]+",s)
<_sre.SRE_Match object at 0xb77742c0>

>>> pat='中文'.decode("utf8")
>>> re.search(pat,s)
<_sre.SRE_Match object at 0x16a16df0>

>>> newpat='這里是中文內容'.decode("utf8")

>>> news=re.sub(pat,newpat,s)
>>> print news
這里是中文內容:123456aa哈哈哈bbcc

Ⅱ python正則表達式中\w居然能匹配漢字,請問是怎麼一回事

\w匹配的是能組成單詞的字元,在python3 中re默認支持的是unicode字元集,當然也支持漢字
如果要讓\w僅支持英文,加個re.A標志
print(re.findall(r"\w",s,re.A))
這樣就不會匹配漢字了

Ⅲ Python用正則表達式匹配含有中文的字元串,匹配不到

代碼如下:

#coding=utf-8

importre
s=u'<li><aclass="nav-first"href="/">首頁</a></li>'
r=re.compile(u'<li><asclass="[^"]*"shref="[^"]">(.*?)(?=</a></li>)')
ss=r.findall(s)
forstrinss:
printstr

運行結果:

Ⅳ python怎樣讀取文本文件里的中文

#在Windows 環境下
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
import re
fin = open('in.txt', 'r') #以讀的方式打開輸入文件
for eachLine in fin: #按行讀入文件內容
line = eachLine.strip().decode('gbk', 'utf-8') #處理前進行相關的處理,包括轉換成Unicode等
print line #列印原始字元
p2 = re.compile(ur'[^\u4e00-\u9fa5]') #中文的編碼范圍是:\u4e00到\u9fa5
zh = "".join(p2.split(line)).strip()
#zh = ",".join(zh.split())
print zh ##列印中文字元

Ⅳ 強烈推薦!Python 這個寶藏庫 re 正則匹配


Python 的 re 模塊(Regular Expression 正則表達式)提供各種正則表達式的匹配操作。

在文本解析、復雜字元串分析和信息提取時是一個非常有用的工具 ,下面總結了 re 模塊的常用方法。


d 匹配所有的十進制數字 0-9

D 匹配所有的非數字,包含下劃線

s 匹配所有空白字元(空格、TAB等)

S 匹配所有非空白字元,包含下劃線

w 匹配所有字母、漢字、數字 a-z A-Z 0-9

W 匹配所有非字母、漢字、數字,包含下劃線


備注跡凳:符號.* 貪婪,符號.*? 非貪婪

[abc]:能匹配其中的單個字元

[a-z0-9]:能匹配指定范圍的字元,可取反(在最前面加入^)

[2-9] [1-3]:能夠做組合匹配

4.{ }:用於標記前面的字元出現的頻率,有如下情況:

{n,m}:代表前面字元最少出現n次,最多出現m次

{n,}:代表前面字元最少出現n次,最多不受限制

{,m}:代表前面字元最多出現n次,最少不受限制

{n}:前面的字元必須出現n次


字元串中有反斜杠的,需要對反斜杠做轉義


():分組字元,可以為匹配到的內容分組,快速獲取到分組中的數據 在正則裡面 "()" 代表的是分組的意思,一個括弧代表一個分組,你只能匹配到 "()" 中的內容。

group:用於查看指定分組匹配到的內容

groups:返回一個元組,組內為所有匹配到的內容

groupdict:返回一個字典,包含分組的鍵值對,需要為分組命名


作用:可以將字元串匹配正則表達式的部分割開並返回一個列表


flags定義包括:

re.I:忽略大小寫

re.L:表示特殊字元集 w, W, b, B, s, S 依賴於當前環境

re.M:多行模式

re.S:』.』並且包括換行符在內的任意字元(注意:』.』不包括換行符)

re.U:表示特殊字元集 w, W, b, B, d, D, s, S 依賴於 Unicode 字元屬性資料庫

在 Python 中使用正耐孫則表達式之前,先使用以下命令導入 re 模塊


例如:

『(d)(a)1』 表示:匹配第一是數字,第二是字元a,第三 1 必須匹配第一個一樣的數字重復一次姿畝旅,也就是被引用一次。

如 「9a9」 被匹配,但 「9a8」 不會被匹配,因為第三位的 1 必須是 9 才可以。

『(d)(a)2』 表示:匹配第一個是一個數字,第二個是a,第三個 2 必須是第二組()中匹配一樣的。

如 「8aa」 被匹配,但 「8ab」,「7a7」 不會被匹配,第三位必須是第二組字元的復製版,也是就引用第二組正則的匹配內容。





熱點內容
三方網站源碼 發布:2024-11-28 08:30:51 瀏覽:108
windows版ftp軟體免費下載 發布:2024-11-28 08:25:28 瀏覽:857
淘寶帳號怎麼改密碼 發布:2024-11-28 07:46:05 瀏覽:11
監控未配置怎麼辦視頻 發布:2024-11-28 07:44:41 瀏覽:502
android獲取手機的ip 發布:2024-11-28 07:42:13 瀏覽:171
python打開文件窗口 發布:2024-11-28 07:36:13 瀏覽:555
cpu二級緩存的作用 發布:2024-11-28 07:36:12 瀏覽:1001
net資料庫控制項 發布:2024-11-28 07:32:58 瀏覽:99
我的世界國際服創建伺服器pc 發布:2024-11-28 07:20:53 瀏覽:773
編譯原理LR分析法pdf 發布:2024-11-28 07:17:41 瀏覽:264