網上找了好久,都沒有理想的解決方法。主要思想,利用正則表達式re.split() 分割,同時利用re.findall() 查找分隔符,而后將二者鏈接即可。
# coding: utf-8 import sys reload(sys) sys.setdefaultencoding("utf-8") import re def my_split(str,sep=u"要求\d+|崗位\S+"): # 分隔符可為多樣的正則表達式 wlist = re.split(sep,str) sepword = re.findall(sep,str) sepword.insert(0," ") # 開頭(或末尾)插入一個空字符串,以保持長度和切割成分相同 wlist = [ x+y for x,y in zip(wlist,sepword) ] # 順序可根據需求調換 return wlist if __name__ == "__main__": inputstr = "崗位:學生: \n要求1.必須好好學習。\n要求2.必須踏實努力。\n要求3.必須求實上進。" res = my_split(inputstr) print '\n'.join(res)