Python——正则表达式的常见应用
在NLP的数据处理过程中,经常会用到正则表达式,应用包括:
- case 1:字符串如何通过split()指定多个字符进行分割字符?
- case 2:网页爬虫时,如何自定义正则表达式,完成目标的匹配或查找?
一、case 1:字符串如何通过split()指定多个字符进行分割字符?
这个例子中含有一个经常会遇到的bug——Python2,非windows系统,python无法直接打印出中文字符(串),会的人一行代码解决,不会的人在网上找半天都解决不了,搞不好会被各种编码之间的转换,环境配置等弄得怀疑人生!
建议大家原创!写文章详细点,不要老是转载,复制,要多动动手,利己也利他。不然,别人高高兴兴地本以为找到了解决方案,折腾半天还是不行,一个又一个浪费时间,何必嘛,一点都不python!不多说了,例子与解决方案如下:
解决方案1:res = str(res).decode('string_escape')。言归正传,通过split()指定多个字符进行分割字符串的例子如下:
import re
# 通过split()指定多个字符进行分割字符串
def multi_char_split(object_str, regex_list):
res = re.split("|".join(regex_list), object_str) # 利用正则表达式进行划分
print(res) # python2,输出出现编码错误;python3,正常输出中文
print(str(res).decode('string_escape')) # python2, linux与macOS需要进行编码转换,windows跳过该步骤,直接输出; python3,输出错误
if __name__ == "__main__":
object_str = '静夜思·李白——唐代 床前明月光,疑是地上霜。'
regex_list = ['·', '——', ' ', ',', '。']
multi_char_split(object_str, regex_list)
运行结果:
解决方案2:用python3吧!
二、网页爬虫时,如何自定义正则表达式,完成目标的匹配或查找?