cqc*_*991 10 python regex unicode python-2.x
这可能是一个字符串
ipath= "./data/NCDC/??/??/9705626661750dat.txt"
Run Code Online (Sandbox Code Playgroud)
或这个
ipath = './data/NCDC/ciampino/6240476818161dat.txt'
Run Code Online (Sandbox Code Playgroud)
我怎么知道第一个字符串包含中文?
我发现这个答案可能有用: 使用Python和Regex查找字符串中的所有中文文本
但它没有成功:
import re
ipath= "./data/NCDC/??/??/9705626661750dat.txt"
re.findall(ur'[\u4e00-\u9fff]+', ipath) # => []
Run Code Online (Sandbox Code Playgroud)
xec*_*cgr 14
匹配的字符串也应该是unicode
>>> import re
>>> ipath= u"./data/NCDC/??/??/9705626661750dat.txt"
>>> re.findall(r'[\u4e00-\u9fff]+', ipath)
[u'\u4e0a\u6d77', u'\u8679\u6865']
Run Code Online (Sandbox Code Playgroud)
Rys*_*ech 10
使用\\p{Han}
正则表达式PyPi regex
:
import regex\nipath = "./data/NCDC/\xe4\xb8\x8a\xe6\xb5\xb7/\xe8\x99\xb9\xe6\xa1\xa5/9705626661750dat.txt"\nprint(regex.findall(r\'\\p{Han}+\', ipath) )\n# => [\'\xe4\xb8\x8a\xe6\xb5\xb7\', \'\xe8\x99\xb9\xe6\xa1\xa5\']\n
Run Code Online (Sandbox Code Playgroud)\n请参阅Python 证明。
\n这regex.search
足以检测:
if regex.search(r\'\\p{Han}\', ipath):\n print(f\'"{ipath}" contains Chinese!\')\n
Run Code Online (Sandbox Code Playgroud)\n
如果你只是想知道你的字符串中是否有中文字符你不需要re.findall
,请使用re.search
匹配对象的事实是真实的.
>>> import re
>>> ipath= u'./data/NCDC/??/??/9705626661750dat.txt'
>>> ipath2 = u'./data/NCDC/ciampino/6240476818161dat.txt'
>>> for x in (ipath, ipath2):
... if re.search(u'[\u4e00-\u9fff]', x):
... print 'found chinese character in ' + x
...
found chinese character in ./data/NCDC/??/??/9705626661750dat.txt
Run Code Online (Sandbox Code Playgroud)
对于我们这些不关心的人re
:
>>> ipath= u"./data/NCDC/??/??/6240476818161dat.txt"
>>> for i in range(len(ipath)):
... if ipath[i] > u'\u4e00' and ipath[i] < u'\u9fff':
... print ipath[i]
...
?
?
?
?
Run Code Online (Sandbox Code Playgroud)
编辑:对于完整的中文字符列表,此SO链接值得查看,因为范围U + 4E00..U + 9FFF未完成. Unicode中的汉字完整范围是什么?
归档时间: |
|
查看次数: |
14979 次 |
最近记录: |