当前位置:  开发笔记 > 编程语言 > 正文

python,正则表达式分裂和特殊字符

如何解决《python,正则表达式分裂和特殊字符》经验,为你挑选了1个好方法。

如何使用空格作为分隔符正确分割包含具有特殊字符的句子的字符串?使用正则表达式分割方法我无法获得所需的结果.

示例代码:

# -*- coding: utf-8 -*-
import re


s="La felicità è tutto" # "The happiness is everything" in italian
l=re.compile("(\W)").split(s)

print " s> "+s
print " wordlist> "+str(l)
for i in l:
    print " word> "+i

输出是:

 s> La felicità è tutto
 wordlist> ['La', ' ', 'felicit', '\xc3', '', '\xa0', '', ' ', '', '\xc3', '', '\xa8', '', ' ', 'tutto']
 word> La
 word>  
 word> felicit
 word> Ã
 word> 
 word> ?
 word> 
 word>  
 word> 
 word> Ã
 word> 
 word> ?
 word> 
 word>  
 word> tutto

而我正在寻找一个输出:

 s> La felicità è tutto
 wordlist> ['La', ' ', 'felicità', ' ', 'è', ' ', 'tutto']
 word> La
 word>  
 word> felicità
 word>  
 word> è
 word>  
 word> tutto

需要注意的是,s是从另一个方法返回的字符串,所以我不能强制编码

s=u"La felicità è tutto"

关于Unicode和reg-ex的官方python文档,我没有找到令人满意的解释.

谢谢.

亚历山德罗



1> Andrew Hare..:

您正则表达式应该(\s) 不是(\W)这样的:

l = re.compile("(\s)").split(s)

上面的代码将为您提供所需的确切输出.但是以下行更有意义:

l = re.compile("\s").split(s)

它会拆分空白字符,并不会将所有空格作为匹配项.你可能需要它们,所以我发布了两个答案.

推荐阅读
ar_wen2402851455
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有