Python 正则表达式不以相同的方式拆分文本
我有一只带scrapy的蜘蛛,我正在使用正则表达式拆分每个单词上的文本。它可以用英语和韩语表达,但当我努力学习西班牙语时,它并不能把事情一分为二Python 正则表达式不以相同的方式拆分文本,python,regex,string,unicode,scrapy,Python,Regex,String,Unicode,Scrapy,我有一只带scrapy的蜘蛛,我正在使用正则表达式拆分每个单词上的文本。它可以用英语和韩语表达,但当我努力学习西班牙语时,它并不能把事情一分为二 foo = 'the quick brown fox' english = foo.xpath('//*[@id="mw-content-text"]//p').xpath('string(.)').re(ur'[a-zA-Z\'-]+') english = ['the','quick','brown','fox',] foo = '빨른 깨를 있
foo = 'the quick brown fox'
english = foo.xpath('//*[@id="mw-content-text"]//p').xpath('string(.)').re(ur'[a-zA-Z\'-]+')
english = ['the','quick','brown','fox',]
foo = '빨른 깨를 있어요'
korean = foo.xpath('//*[@id="mw-content-text"]//p').xpath('string(.)').re(ur'[\uac00-\ud7af]+')
korean = ['빨른','깨를','있어요']
foo = 'el zorro marron rapido'
spanish = foo.xpath('//*[@id="mw-content-text"]//p').xpath('string(.)').re(ur'[\u0000-\u00FF]+')
spanish = ['el zorro marron rapido']
我不明白为什么这会与其他语言有什么不同。在
\u00FF
边界的上方和下方都有大量的Unicode空白定义。例如,见。您不能使用\w+
?这将是更可取的方法。与其他正则表达式不同,[\u0000-\u00FF]
包含空格字符(\u0020
)
我认为韩文文本应该是:
빠른 갈색 여우代码>;)哈哈,好的,谢谢。我只是打字很快,我的韩语不是很好,但出于我的真正目的,.split()不起作用。
>>> import re
>>> re.search(ur'[a-zA-Z\'-]', ' ') # does not match space
>>> re.search(ur'[\uac00-\ud7af]', ' ') # does not match space
>>> re.search(ur'[\u0000-\u00FF]', ' ') # match space
<_sre.SRE_Match object at 0x7fe024fc4648>
>>> 'the quick brown fox'.split()
['the', 'quick', 'brown', 'fox']
>>> '빨른 깨를 있어요'.split()
['빨른', '깨를', '있어요']
>>> 'el zorro marron rapido'.split()
['el', 'zorro', 'marron', 'rapido']