gpt4 book ai didi

python - 如何在 Python 中将重音字符与正则表达式匹配?

转载 作者:太空狗 更新时间:2023-10-29 21:57:21 26 4
gpt4 key购买 nike

我需要 this question 的解决方案,除了 Python!我已经尝试为 Python 安装正则表达式库,as apparently允许在 Python 的正则表达式中使用 POSIX 表达式,但我猜它不包括 [:alpha:] 类中的 Unicode 字符。例如:

>>> re.search(r'[[:alpha:] ]+','Please work blåbær and NOW stop 123').group(0)
'Please work bl'

当我希望它匹配时 请工作 blåbær 现在停止

编辑:我正在使用 Python 2.7

编辑 2: 我尝试了以下操作:

>>> re.search(re.compile('[\w ]+', re.UNICODE),'Please work blåbær and NOW stop 123').group(0)
'Please work bl\xc3'

不完全是我想要的(我也想匹配第一个非 ASCII 字符之后的部分),但至少它比以前更匹配字符。我应该在这里做什么才能让它与我想要的其他内容相匹配?

编辑 3: 我不想匹配任何非“单词”字符; “单词”是指 a-z、A-Z、空格和单词字符的任何重音变体。我希望我的想法得到了理解;用类似的短语

lets match força, but stop before that comma

我只想匹配 let match força

编辑 4: 所以我尝试只为这个脚本使用 Python 3:

>>> re.search(re.compile('[\w ]+', re.UNICODE),'lets match força, but stop before that comma').group(0)
'lets match força'

我想它在 Python 3 中的大部分工作,除了它还匹配数字(我绝对不想要)和下划线。在 Python 2 3 中有什么方法可以解决这个问题?

最佳答案

不清楚您使用的是哪个 python 版本。如果你使用 2.x 那么你可能有一个 unicode 问题。看这个post以获得进一步的指示,并随时更新您的问题以进一步阐述。

我很惊讶,我无法将重音字符转换为正确的 unicode 表示...

但有解决方法:

re.search(re.compile('((\w+\s)|(\w+\W+\w+\s))+', re.UNICODE), ur'Please work blåbær and NOW stop 123').group(0)

re.search(re.compile('\D+', re.UNICODE), ur'Please work blåbær and NOW stop 123').group(0)

关于python - 如何在 Python 中将重音字符与正则表达式匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13261813/

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