这可能是一个字符串
ipath= "./data/NCDC/??/??/9705626661750dat.txt"
或这个
ipath = './data/NCDC/ciampino/6240476818161dat.txt'
我怎么知道第一个字符串包含中文?
我发现这个答案可能有用: 使用Python和Regex查找字符串中的所有中文文本
但它没有成功:
import re ipath= "./data/NCDC/??/??/9705626661750dat.txt" re.findall(ur'[\u4e00-\u9fff]+', ipath) # => []
xecgr.. 14
匹配的字符串也应该是unicode
>>> import re >>> ipath= u"./data/NCDC/??/??/9705626661750dat.txt" >>> re.findall(r'[\u4e00-\u9fff]+', ipath) [u'\u4e0a\u6d77', u'\u8679\u6865']
timgeb.. 6
如果你只是想知道你的字符串中是否有中文字符你不需要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
Rolf of Saxo.. 5
对于我们这些不关心的人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] ... ? ? ? ?
编辑:对于完整的中文字符列表,此SO链接值得查看,因为范围U + 4E00..U + 9FFF未完成. Unicode中的汉字完整范围是什么?
匹配的字符串也应该是unicode
>>> import re >>> ipath= u"./data/NCDC/??/??/9705626661750dat.txt" >>> re.findall(r'[\u4e00-\u9fff]+', ipath) [u'\u4e0a\u6d77', u'\u8679\u6865']
如果你只是想知道你的字符串中是否有中文字符你不需要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
对于我们这些不关心的人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] ... ? ? ? ?
编辑:对于完整的中文字符列表,此SO链接值得查看,因为范围U + 4E00..U + 9FFF未完成. Unicode中的汉字完整范围是什么?