一尘不染

在python中的()和[]之间删除文本

python

我有一个文本很长的字符串(),并[]在里面。我正在尝试删除括号和方括号之间的字符,但是我不知道该怎么做。

该列表与此类似:

x = "This is a sentence. (once a day) [twice a day]"

该列表不是我正在使用的列表,但非常相似,但简短得多。

谢谢您的帮助。


阅读 125

收藏
2020-12-20

共1个答案

一尘不染

这应该适用于parens。正则表达式会“消耗”匹配的文本,因此不适用于嵌套的括号。

import re
regex = re.compile(".*?\((.*?)\)")
result = re.findall(regex, mystring)

否则这将找到一组parens …只需循环以查找更多

start = mystring.find( '(' )
end = mystring.find( ')' )
if start != -1 and end != -1:
  result = mystring[start+1:end]
2020-12-20