當前位置:首頁 » 編程語言 » python漢字正則

python漢字正則

發布時間: 2023-01-12 23:41:34

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

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

2. python,用正則表達式匹配特定漢字

在Python的string前面加上『r』, 是為了告訴編譯器這個string是個raw string,不要轉意backslash '\' 。 例如,\n 在raw string中,是兩個字元,\和n, 而不會轉意為換行符。由於正則表達式和 \ 會有沖突,因此,當一個字元串使用了正則表達式後,最好在前面加上'r'。
在[]中
-長用來指定一個字元集,在這個字元集中的一個可以拿來匹配:[abc] [a-z]
-元字元在在字元集中不起作用
-在[]內用^表示補集,用來匹配不在區間范圍內的字元
s=r'aba' 匹配abc
s=r't[io]p' 匹配tip或者top
s=r't[a-z0-9A-Z]'匹配t+0-9或者a-z或者A-Z
[abc]表示「a」或「b」或「c」
[0-9]表示0~9中任意一個數字,等價於[0123456789]
[\u4e00-\u9fa5]表示任意一個漢字
[^a1<]表示除「a」、「1」、「<」外的其它任意一個字元
[^a-z]表示除小寫字母外的任意一個字元

3. python怎麼用正則表達式提取中文

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

from:http://blog.aizhet.com/web/12078.html

4. python編程語言中的正則表達式求解

正則式:(.*?)<(/?w+)[^>]*>(?:([^<]*)(<.*>)?)?

  1. (.*?)

    這里的.*代表任意長度的字元,後面的?表明這是一個非貪婪匹配,()作用是捕獲匹配的文本;

  2. <(/?w+)[^>]*>

    <先匹配一個「<」;

    (/?w+)「/?」將匹配0個或一個「/」,「w+」匹配1個以上的字母或數字或下劃線或漢字;

    [^>]*中括弧內將匹配除>以外的任何字元,*表示允許這樣的字元出現0次或任意多次;

    >最後匹配一個「>」;

    這幾個部分連起來看,將匹配任何的HTML頭標簽與尾標簽,如<div>或</div>或<br />。

  3. (?:([^<]*)(<.*>)?)?

    (?:exp)?這個結構是匹配exp語句0次或1次,這里的exp就是([^<]*)(<.*>)?

  4. ([^<]*) 與2中類似,將匹配除<以外的任何字元0次或任意多次;

    (<.*>)? 匹配以<開頭,以>結尾的任何字元串;


    所以最終的意思是,匹配連續兩個HTML標簽(頭標簽或尾標簽)及其中間的內容。

5. python 正則匹配中文問題

list列印是這樣的,這是python的系統行為,改變不了。
如果不想用循環,可以用 print(u"\n".join(items))

6. python正則匹配漢字

#python2使用如下即可:

#encoding:UTF-8
importre
importsys
reload(sys)
sys.setdefaultencoding('utf-8')

defextract_number(input):
match=re.search(u"[u4e00-u9fa5]+",input)
returnmatch.group()

if__name__=="__main__":
printextract_number(unicode("dss2第三季度建安大sdssd43fds",'utf8'))#python3使用如下:


#encoding:UTF-8
importre

defextract_number(input):
match=re.search("[u4e00-u9fa5]+",input)
returnmatch.group()

if__name__=="__main__":
print(extract_number("dss2第三季度建安大sdssd43fds"))

7. python怎麼用正則表達式提取中文

1、字元串line='ufeffD0002044x01大數據x01數據分析x01技術x01工具x01應用 '
想提取出其中的「大數據」,「數據分析」,「技術」,「工具」,「應用」這些中文,用了正則表達式:
>>>pat2='x01(.*?)'
>>>rs=re.compile(pat2).findall(line)
>>>print(rs)
['','','','','']
顯示的結果是空,請問如何才能正確的提出中文部分。

2、原文: 法規名稱:'《中華人民共和國合同法》',Items:[{法條名稱:'第五十二條'
匹配成: 《中華人民共和國合同法》第五十二條
(?<=法規名稱:').*?(',Items:[{法條名稱:').*?(?=') 請問這樣匹配哪裡錯了?Python報sre_constants.error: unterminated character set at position 22

3、Python re正則匹配中文,其實非常簡單,把中文的unicode字元串轉換成utf-8格式就可以了,然後可以在re中隨意調用
unicode中中文的編碼為/u4e00-/u9fa5,因此正則表達式u」[u4e00-u9fa5]+」可以表示一個或者多個中文字元
>>> import re
>>> s='中文:123456aa哈哈哈bbcc'.decode('utf8')
>>> s
u''
>>> print s
中文:123456aa哈哈哈bbcc 。

8. 更強大的python正則表達式模塊 -- regex

python內置的正則表達庫re比較弱,而且似乎在好幾年裡都沒太大的變化。
這里介紹這個python模塊regex,實現了更多方便好用的功能。

比如: p{han} 可以匹配漢字, p{Latin} 可以匹配拉丁字母。相當簡單,易記易用。

更多的介紹請直接看: https://pypi.python.org/pypi/regex

用pip 命令安裝即可

regex的源碼託管在這里 : https://bitbucket.org/mrabarnett/mrab-regex/

參考資料:
http://www.regular-expressions.info/unicode.html

2017-1-28 1:32:59 codegay

9. Python re函數 中文正則匹配

建議使用以下正則表達式:
(?<=>)[^a-zA-Z0-9_]+(?=<)

前面的 (?<=>) 和後面的 (?=<) ,使得匹配出現在> . . . < 之間;
[^a-zA-Z0-9_]+ 排除對英文數字下劃線的匹配,可根據具體情況作變動。

熱點內容
解壓專家解壓迅雷雲盤 發布:2025-07-14 09:11:09 瀏覽:910
編程基礎教學 發布:2025-07-14 09:09:48 瀏覽:94
電腦板能進入的手機版伺服器 發布:2025-07-14 09:08:10 瀏覽:555
roblox電腦版伺服器推薦 發布:2025-07-14 09:06:07 瀏覽:807
application緩存 發布:2025-07-14 09:01:56 瀏覽:345
安卓怎麼看綁定地區 發布:2025-07-14 09:01:49 瀏覽:85
籽岷的生存伺服器IP 發布:2025-07-14 08:51:06 瀏覽:419
我的世界搭建tcp伺服器 發布:2025-07-14 08:42:55 瀏覽:659
安卓jj比賽哪個版本有全記牌器 發布:2025-07-14 08:28:27 瀏覽:73
python腳本執行hive 發布:2025-07-14 08:26:24 瀏覽:489