wro*_*ame 7 python regex unicode non-ascii-characters
除了Python,我需要这个问题的解决方案!我已经尝试为Python安装regex库,因为显然可以在Python的正则表达式中使用POSIX表达式,但是我猜它在[:alpha:]类中不包含Unicode字符.例如:
>>> re.search(r'[[:alpha:] ]+','Please work blåbær and NOW stop 123').group(0)
'Please work bl'
Run Code Online (Sandbox Code Playgroud)
当我希望它匹配 Please work blåbær and NOW stop
编辑:我使用的是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'
Run Code Online (Sandbox Code Playgroud)
不是我想要的(我想在第一个非ASCII字符之后匹配部分),但至少它在字符上比以前更匹配.我应该在这做什么才能让它与我想要的其他东西相匹配?
编辑3:我不想匹配任何非"单词"字符; "word"是指az,AZ,space和单词字符的任何重音变体.我希望我得到了我的想法; 在一个短语中
lets match força, but stop before that comma
Run Code Online (Sandbox Code Playgroud)
我想只匹配 lets 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'
Run Code Online (Sandbox Code Playgroud)
我猜它在Python 3中大部分都有用,除了它还匹配数字(我绝对不想要)和下划线.有什么方法可以解决这个问题,在Python 2 或 3中?
目前尚不清楚您使用的是哪个 python 版本。如果您使用 2.x 那么您可能会遇到 unicode 问题。请参阅这篇文章以获取进一步的指导,并随时更新您的问题以进一步详细说明。
\n\n我很惊讶,我无法将重音字符转换为正确的 unicode 表示形式......
\n\n但有解决方法:
\n\nre.search(re.compile(\'((\\w+\\s)|(\\w+\\W+\\w+\\s))+\', re.UNICODE), ur\'Please work bl\xc3\xa5b\xc3\xa6r and NOW stop 123\').group(0)\nRun Code Online (Sandbox Code Playgroud)\n\n或者
\n\nre.search(re.compile(\'\\D+\', re.UNICODE), ur\'Please work bl\xc3\xa5b\xc3\xa6r and NOW stop 123\').group(0)\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
5255 次 |
| 最近记录: |