Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 正则表达式不以相同的方式拆分文本_Python_Regex_String_Unicode_Scrapy - Fatal编程技术网

Python 正则表达式不以相同的方式拆分文本

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 = '빨른 깨를 있

我有一只带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 = '빨른 깨를 있어요'
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']