gpt4 book ai didi

python - 在 re 包中使用日文定界符

转载 作者:行者123 更新时间:2023-11-28 16:38:32 25 4
gpt4 key购买 nike

我有以下文本,想提取 '- あらたなるきぼう' 位于 '(' 和日语字符 '、'

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)

知道我做错了什么吗?

当然我可以使用 split 方法,首先在 '、' 上,然后在 '(' 上。首先它很丑而且不健壮,其次对某些人来说它不被 '(':

分割的原因
st1.split('、')[0].split('(')` 

最佳答案

第一个字符是:


不是:

(

这些是不同的字符。第一个是 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>

关于python - 在 re 包中使用日文定界符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22844150/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com