python正则001

79 阅读1分钟
import re  
  
# 示例文本  
text = """  
15:51:13
【国家发xxxxxx:体系化推进xx广泛应用 积极培育xxxx和独角兽企业】xxxx7月30日电,下一步,xxxxxxxxxxxxxxxxxxx?对此,国家发展改革xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”。



xxxxxxxx,xxxxxxxxxx,xxxxxxxxxxxxxx,xxxxxxxxxx。

展开


xxxxxxxxxxxxxxxxxxx。xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx,xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx,xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx、xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”。



xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx。xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx,积极培育瞪羚企业和独角兽企业,引导新兴产业健康有序发展。



xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx。
"""
  
# 使用正则表达式匹配所有单独一行只有“展开”的行  
# 这里用到了正则表达式的负向前瞻(?!)和负向后瞻(?<!)来确保“展开”前后都没有其他字符(除了换行符)  
# 但由于正则表达式通常不直接处理换行符作为普通字符,所以这里的策略是寻找"^\s*展开\s*$"这样的模式  
# 意味着行开始(^)后面可以有空格(\s*),然后是“展开”,再后面可以是空格(\s*),直到行结束($)  
  
# 注意:这个正则表达式假设“展开”前后最多只有空白字符(包括空格、制表符等),并且没有考虑更复杂的边界情况(如“展开”前后直接是文本换行但无空格)  
# 对于更复杂的边界情况,可能需要更复杂的逻辑或正则表达式  
  
# 使用re.sub()函数替换匹配到的行为空字符串,即删除这些行  
# 但由于re.sub()直接作用于整个字符串,并且我们想要删除的是整行,所以需要一些额外的步骤  
# 这里我们先将文本按行分割,处理后再合并  
  
lines = text.split('\n')  
filtered_lines = [line for line in lines if not re.match(r'^\s*展开\s*$', line, re.UNICODE)]  
  
# 合并处理后的行  
result_text = '\n'.join(filtered_lines)  
  
print(result_text)