Ten*_*igh 1 python regex unicode python-2.7
我试图在日语地址中找到某些单词,以便我可以擦除它们.如果只有一个字符,正则表达式工作正常,但它们似乎找不到2个字符或更多的字符串:
import re
add = u"????????????????????"
test = re.search(ur'["??"|"??"]',add)
print test.group(0)
?
Run Code Online (Sandbox Code Playgroud)
我可以使用re.findall而不是re.search,但它将所有的发现放入一个元组,所以我必须解析元组.如果这是最好的方式,我可以忍受它,但我想我错过了一些东西.
在上面的例子中,我想用短划线交换"丁目"并删除尾随的"番地",以便地址如此读取:
埼玉県川口市金山町12-1-104
你在|字符类([....])中使用.它将匹配那里列出的任何字符; 这不是你想要的.
指定没有字符类的模式.(也没有")
>>> import re
>>> add = u"????????????????????"
>>> test = re.search(ur'??|??', add)
>>> test.group(0)
u'\u4e01\u76ee'
>>> print test.group(0)
??
Run Code Online (Sandbox Code Playgroud)
要获得你想要的东西,请使用str.replace(unicode.repalce)和re.sub.
>>> print re.sub(u'??$', u'', add.replace(u'??', u'?'))
?????????????????
Run Code Online (Sandbox Code Playgroud)
$用于仅匹配字符串的末尾.如果位置??$无关紧要,则不需要正则表达式.str.replace足够:
>>> print re.sub(u'??$', u'', add.replace(u'??', u'?'))
?????????????????
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
568 次 |
| 最近记录: |