我有以下文字,想要提取'- あらたなるきぼう'
和日语字符'('
之间的'、'
st1='『スター・ウォーズ エピソード4/新たなる希望』( - あらたなるきぼう、Star Wars Episode IV: A New Hope)'
我使用了两种正则表达式方法来提取我想要的东西,但它们都没有。
# -*- coding: utf-8 -*-
import re
st1='『スター・ウォーズ エピソード4/新たなる希望』( - あらたなるきぼう、Sta r Wars Episode IV: A New Hope)'
m1 = re.search('\(([^、]*).*、.*\)',st1)
m2 = re.search('\((.*?)、.+?\)',st1).group(1)
知道我做错了什么吗?
当然我可以先使用'、'
然后'('
使用拆分方法。首先,它是丑陋而不健全的,其次是由于某种原因,它不会被'('
分开:
st1.split('、')[0].split('(')`
答案 0 :(得分:3)
第一个字符是:
(
不
(
这些是截然不同的字符。第一个是FULLWIDTH LEFT PARENTHESIS。第二个是正常的ascii开括号。
您必须使用具有正确unicode字符的unicode字符串才能获得匹配:
>>> st1=u'『スター・ウォーズ エピソード4/新たなる希望』( - あらたなるきぼう、Star Wars Episode IV: A New Hope)'
>>> import re
>>> re.search(u'(([^、]*).*、.*\)',st1)
<_sre.SRE_Match object at 0x103717738>
答案 1 :(得分:0)