文本文件输出的语法格式为word> data <word
,其中需要删除括号。 data
部分几乎可以是任何东西(并且长度可变),包括新行,空格,点,字母等。目前我正在使用......
text = re.sub("(>)(.{1,10})(<)", r"\2", text)
......但它有明显的局限性,1是长度。不使用*
的原因是因为存在一些限制,即:
>
或<
内无其他dog> 7 4^ 8 0 . 2 1 6? <cat
或exam> 1961 5 . 66 9 <ple
test> 0? <string
&amp; over> 1980 31, 6 000 <flow
不匹配,selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH
或self.StartTime = QtWidgets.QDateTimeEdit(self.widget)
self.StartTime.setCalendarPopup(True)
self.StartTime.setObjectName("StartTime")
self.gridLayout.addWidget(self.StartTime, 0, 0, 1, 3)
self.StartTime.setDate(QDate(datetime.now()-timedelta(days=7)))
self.StartTime.setTime(QTime.currentTime())
#This doesn't work
#print(self.StartTime.sectionText())
正常,括号内删除如何处理?
答案 0 :(得分:0)
为什么不喜欢这个?
text = re.sub(r">((?:[^<>\d]|\d{2,})*)<", r"\1", text)
(?:[^<>\d]|\d{2,})*
匹配除尖括号或数字([^<>\d]
)之外的任何字符或任何数字,只要至少有两个(\d{2,}
),重复(*
)。
答案 1 :(得分:0)
由于在问题的一次编辑之后没有一个回答者添加到他们的答案中,我不得不发布另一个问题来回答该部分,并且实际上完成了正则表达式。
最后,我使用的最终代码是:
text = re.sub(r">((?!(?:[^<]*\b\d\b){2})[^><]*)<", r"\1", text)
它只允许1个单位数字,并且在匹配中没有括号,但否则会捕获其他任何内容。