【发布时间】:2014-04-01 11:01:51
【问题描述】:
所以,我在 Python 中有这个字符串 str = u'world-weather-online®_jkpahjicmehopmlkbenbkmckcedlcmhk',我只想使用正则表达式提取其中的 world-weather-online® 部分。我所做的首先是match = re.search(r'([a-zA-Z0-9\-\%\+]+?)_[a-z]+', str),然后在字符串str2 = match.group(1) 中得到结果。
但是,我最终得到了错误'NoneType' object has no attribute 'group'。如果我只是尝试使用字符串“world-weather-online_jkpahjicmehopmlkbenbkmckcedlcmhk”,它就可以正常工作。但是,使用特殊的 unicode 符号会产生问题。我尝试使用match = re.search(ur'([a-zA-Z0-9\-\%\+]+?)_[a-z]+', str),但它仍然没有帮助。关于如何解决这个问题的任何想法?谢谢!
【问题讨论】:
-
您的意思是您有一个 bytestring 的代码点超出 ASCII 范围?或者你有 unicode 字符串对象 (
u'world-weather-online®_jkpahjicmehopmlkbenbkmckcedlcmhk)? -
没有特殊的unicode符号这样的东西;您的所有文本都是 unicode 代码点,其中大部分在 ASCII 范围内。
-
我有一个 Unicode 字符串对象。
-
注意:不要使用
str作为变量名;您正在掩盖内置类型。
标签: python regex string unicode