问题描述
下面几行在 A QPlainTextEdit 中:
line 2 s44 等级
借助行变量(line = "line 2")
item = "line 2"
text = self.project_length_lanes_plainedit.toPlainText()
text = text.replace(item,'')
_list = text.split()
text = '\n'.join(_list)
self.project_length_lanes_plainedit.setPlainText(text)
但我想删除整行。我该怎么做?
解决方法
您有 2 个基本选项:
- 使用正则表达式匹配替换中的整行,则不需要拆分行
- 首先拆分为列表并从列表中删除匹配的行,最后像您一样加入列表
编辑:
import re
x = """
line1: abc
line2: def
line3: ghi
"""
print("regex:")
print(re.sub(r'line2.*','',x)) # note: this leaves empty line
print("regex2:")
print(re.sub(r'line2.*\n',x))
print("list:")
print('\n'.join([line for line in x.split('\n') if "line2" not in line]))
,
我尝试如下工作:
item = "line 2"
text = self.project_length_lanes_plainedit.toPlainText()
for l in text.split('\n'):
if item in l:
text = text.replace(l,'')
_list = text.split('\n')
_list = [ i for i in _list if i ]
text = '\n'.join(_list)
self.project_length_lanes_plainedit.setPlainText(text)