在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Python/ python 里面的re 正則問題

python 里面的re 正則問題

>>> pattern=re.compile("^[$¥]") 
>>>sssss1=pattern.findall("¥未透露")
>>> sssss1
['\xef']

我是想匹配前面的美元符號 ”¥"但出現(xiàn)了 'xef' 這怎么解釋?

回答
編輯回答
命于你

字節(jié)與字符的區(qū)別。 Python 2.x 環(huán)境下,你那樣寫,找出的是第一個字節(jié)。

>>> pattern=re.compile(u"^[$¥]") 
>>> sssss1=pattern.findall(u"¥未透露")
>>> sssss1
[u'\uffe5']
>>> print sssss1
[u'\uffe5']
>>> print sssss1[0]
¥
>>> 
2018年7月3日 17:24
編輯回答
懶洋洋

是字符編碼問題,相同的代碼在python 3.6里,sssss1=['¥'].

2018年7月16日 17:26
編輯回答
陪她鬧

¥ 為 xefxbfxa5
所以正則"^[$¥]" == "^[$xefxbfxa5]"
因此就匹配第一個了

In [7]: '¥'
Out[7]: '\xef\xbf\xa5'

In [8]: pattern=re.compile("^[$¥]")

In [9]: sssss1=pattern.findall("¥未透露")

In [10]: sssss1
Out[10]: ['\xef']

解決方法: 使用分組


In [24]: pattern=re.compile("^(¥)|^(\$)")

In [25]: pattern.findall("¥未透露")
Out[25]: [('\xef\xbf\xa5', '')]
2018年9月23日 14:39