pythonre中文
A. python的re,正則表達式,可以用中文么
解決了>>>
a='中文'>>>
a'\xd6\xd0\xce\xc4'>>>
import
re>>>
mytestre=re.compile('\xd6\xd0\xce\xc4')>>>
b='中文asdf223中文ss'>>>
mytestre.sub('zw',b)'zwasdf223zwss'>>>復制代碼關鍵是要找到中文相應coding對應的編碼,這里中文='\xd6\xd0\xce\xc4'所以,就用\xd6\xd0\xce\xc4代替中文就可以了,如果是其他編碼,也用類似的方法找到編碼的字元串就可以了,沒測試過,應該是這樣的。哈哈。:mrgreen:
B. python re模塊中的re.U是干什麼用的
意思就是把\w \W \s \S等這些元字元按照 Unicode 的標准來考慮。舉個例子
pattern = re.compile(ur"a\s+b", re.U)
m = pattern.findall(u"dsadadsada\u3000b") # 匹配成功
pattern = re.compile(ur"a\s+b")
m = pattern.findall(u"dsadadsada\u3000b") # 匹配失敗
\u3000是中文下的unicode空格符,如果不加 re.U \s指認 ascii 中的空白符。
ab 中間那個就是中文空格,可以用來在貼吧里縮進代碼噢。
縮進
C. 如何用正則表達式提取字元串中的中英文
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
D. python正則表達式re.findall(r"\b\w+\b", s)中的r是什麼意思
在Python的string前面加上『r』, 是為了告訴編譯器這個string是個raw string,不要轉意backslash '' 。 例如, 在raw string中,是兩個字元,和n, 而不會轉意為換行符。由於正則表達式和 會有沖突,因此,當一個字元串使用了正則表達式後,最好在前面加上'r'。
例:r" 」
作用:聲明後面的字元串是普通字元串
特殊字元串中含有:轉義字元 什麼什麼的
用途:一般用在 正則表達式、文件絕對地址
1,正則表達式:
這樣就不用專門的去處理引號之中的特殊字元了
E. python re sub 怎樣替換EXCEL中的中文字元和空格
df 不是字元串,sub函數 第三個參數 是字元串
F. python3 re模塊怎麼抓取中文類型
Python的re模塊里沒有直接匹配中文的屬性或者方法。
不過可以用re.findall+()來匹配,但是如果數據裡面有中英文,那麼就得再次匹配了。
例:
test = '<html><head>網路</head></html>'
cont = re.findall(r'<ht.*?head>(.*?)</hea',test)
print(cont)
G. python re 正則匹配某類字元前的所有字元(不包括該類字元)
首先,「匹配除2012這個字元串以外的任意字元?」語義不明,你是想將其從原字元串中刪除還是要匹配2012以外的年份?
姑且認為你的意思是後者,也即在一個特定模式里排除某些匹配的實例。
方法一、先預處理,將要匹配的字元串里的2012替換成不可能出現的字元串,然後再進行匹配處理,最後再將其替換回2012。
方法二、使用不匹配的前向斷言 (?! ...):
import re
s = '....<b>0033<b> <b>1033<b> <b>2012<b> <b>2033<b> <b>2043<b> <b>3033<b>.....'
p = re.compile('<b>(?!2012)[0-9]{4}<b>')
for m in re.finditer(p, s):
print m.group()
可以匹配出
<b>0033<b>
<b>1033<b>
<b>2033<b>
<b>2043<b>
<b>3033<b>
而沒有'<b>2012<b>'
H. python如何安裝re庫
re庫是Python關於正則表達式的一個內置模塊,使用時無需下載,直接import即可。我們首先來看看re.py自己頭部的注釋是如何描述自己的:
這個模塊提供與Perl語言中類似的正則表達式匹配操作,支持bytes和unicode兩種格式的字元串,處理的字元串可以包含空字元以及超出ASCII碼范圍的字元(比如中文字元)。
正則表達式中既有'A'、'a'這種就代表自身的一般字元,又有一些具有特定含義的特殊字元,如|、(等。特殊字元既可以作為一個單純的值表示它自身,也可以影響它周邊1的正則表達式的解釋。
re庫中還包含一些特殊的字元序列,由\和一個字元組成的特殊序列在下表列出,如果\之後的字元不在下列表格中,正則表達式將會匹配字元本身,如\c匹配的就是字元c本身。我們發現如果 \小寫字母 代表了某一含義,那麼對應的 \大寫字母 常常代表它的補集。
I. Python正則表達式中re.M 是什麼意思
Python正則表達式中re.M的意思是:多行匹配,影響 ^ 和 $。
正則表達式可以包含一些可選標志修飾符來控制匹配的模式。修飾符被指定為一個可選的標志。多個標志可以通過按位 OR(|) 它們來指定。如 re.I | re.M 被設置成 I 和 M 標志:
re.I:使匹配對大小寫不敏感。
re.L:做本地化識別(locale-aware)匹配。
re.S:使 . 匹配包括換行在內的所有字元。
re.U:根據Unicode字元集解析字元。這個標志影響 w, W, , B。
re.X:該標志通過給予你更靈活的格式以便你將正則表達式寫得更易於理解。
(9)pythonre中文擴展閱讀
正則表達式的模式有I、L、M、S、X、U六種模式:
1、I (IGNORECASE) , 忽略大小寫的匹配模式。
2、L (LOCALE),字元集本地化。
使預定字元類 w W B s S 取決於當前區域設定,比如在轉義符w,在英文環境下,它代表[a-zA-Z0-9_],即所以英文字元和數字。如果在一個法語環境下使用,預設設置下,不能匹配"é" 或 ""。加上這L選項和就可以匹配了,不常用。
3、M (MULTILINE),多行模式。
改變 ^ 和 $ 的行為,^匹配開始位置,這種模式下匹配每一行的開始,$匹配結束位置,這種模式下匹配每一行的結束。
4、S (DOTALL),點任意匹配模式。
此模式下.可匹配任何字元,包括換行符。
5、X (VERBOSE),冗餘模式。
這個模式下正則表達式可以是多行,忽略空白字元,並可以加入注釋,方便理解。
6、U (UNICODE),unicode定義模式。
使預定字元類 w W B s S d D 取決於unicode定義的字元屬性。