python正則表達式提取
⑴ 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 。
⑵ python 正則表達式同時提取多個字元內容
那是因為正則表達式r'a(.+?)b|wz's和sd的結果在第一捕獲組中,而wz在第0捕獲組中,所以你要不然把wz也用小括弧括起來r'a(.+?)b|(wz)'這樣分別取第一和第局凱二捕獲組的數據,要不然你用r'(?<=a).+?(?=b)|wz 前向吵臘畝預搜索(?<=)和後向預搜索(?=)這樣沒有捕獲組升森,結果都在第0捕獲組中
完整的兩種方法的Python程序如下
#!/usr/bin/python
importre
text='asb,fasdbwz'
u=r'a(.+?)b|(wz)'
result=re.findall(u,text)
foriinrange(0,len(result)):
ifresult[i][0]=='':
print(result[i][1])
else:
print(result[i][0])
運行結果
s
sd
wz
第二種方法
#!/usr/bin/python
importre
text='asb,fasdbwz'
u=r'(?<=a).+?(?=b)|wz'
result=re.findall(u,text)
foriinrange(0,len(result)):
print(result[i])
運行結果
s
sd
wz
⑶ 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
⑷ Python怎麼用正則表達式提取字元串中的數字和子字元串
Python用正則表達式提取字元串中的數字和子字元串
import re
re.findall("\d+",字元串)
⑸ python 正則表達式re.sub()提取字元串以及去除空格
Python 的re模燃搏塌塊提供了re.sub用於替換字元串中的匹配項。
語法:
re.sub(pattern, repl, string, count=0)
參數:
pattern : 正則中的模式字元串。
repl : 替換的字元串,也可為一個函數。
string : 要被查找替換的原始字元串。
count : 模式匹配後替換的最大次數,默認 0 表示替換所有的匹配皮圓。
實例:
註:re.sub(r'[a-zA-Z",:{}]', "", data),銀念中括弧表示選擇其中的任意元素,a-zA-Z表示任意字母。
⑹ python 正則表達式提取字元串
需要注意,你給的例子,來源和/中間是有一個空格的。
⑺ python 正則表達式提取字典中的imUrl的value值
對於你給的字元串,可以被看作一個字典,所以可以按照鍵值來提取imUrl的value值,也可以用正則表達式提取imUrl的value值.
兩種方法我都寫出來了,你看看吧,要用哪種方法,你自己決定.(因為回答問題不能出現鏈接,所以我把imUrl的value值改成了'imUrl鏈接',意思是一樣的)
第一種方法
data={'asin': '0000037214', 'related': {'also_viewed': ['B00JO8II76', 'B00DGN4R1Q', 'B00E1YRI4C']}, 'title': 'Purple Sequin Tiny Dancer Tutu Ballet Dance Fairy Princess Costume Accessory', 'price': 6.99, 'salesRank': {'Clothing': 1233557}, 'imUrl': 'imUrl鏈接', 'brand': 'Big Dreams','categories': [['Clothing, Shoes & Jewelry', 'Girls'], ['Clothing, Shoes & Jewelry', 'Novelty, Costumes & More', 'Costumes & Accessories', 'More Accessories', 'Kids & Baby']]}
print(data['imUrl'])
源代碼(注意源代碼的縮進)
⑻ python正則表達式截取一段內容
print(re.findall(r'>(d{1,3}.d{1,3}.d{1,3}.d{1,3})
.*?
(.*?)