python 正则匹配 csv文件中特殊符号如■高风险 这样的black block

各种符号必然在unicode中有保存,根据unicode代码匹配即可。

1.csv中特殊字符可以在excel的【插入符号】中查找,然后记下该符号的Unicode代码。如■ 这个实心方形的Unicode代码为25A0:

2.需要查询其他的代码可以以此代码为基础搜索,(当然本例用词代码即可):如unicode 25A0 python,可得到在各编码方式的代码,本例网址:

http://www.fileformat.info/info/unicode/char/25a0/index.htm  找python 即:

UTF-8 (hex) 0xE2 0x96 0xA0 (e296a0)
UTF-8 (binary) 11100010:10010110:10100000
UTF-16 (hex) 0x25A0 (25a0)
UTF-16 (decimal) 9,632
UTF-32 (hex) 0x000025A0 (25a0)
UTF-32 (decimal) 9,632
C/C++/Java source code "u25A0"
Python source code u"u25A0"

3.

# -*- coding: utf-8 -*-
import re
a=u"u25A0"
b=u"高风险"
d="%s%s"%(a,b)
d1=d.encode('GBK') #decode 以便匹配文本获取内容,原为utf8
p=re.compile(".*s*%ss*.*"%d1)
with open ("b.csv","r") as r:
    for i in r:
	    #print i
	    line=i.strip().split("#")[7]
	    print line
	    if p.search(line):
		    count+=1
print "count =%s"%count	

还需要认真的学习编码方式:http://python.jobbole.com/86670/

本文来自博客园,作者:BioinformaticsMaster,转载请注明原文链接:https://www.cnblogs.com/koujiaodahan/p/8410409.html

原文地址:https://www.cnblogs.com/koujiaodahan/p/8410409.html