当前位置: 首页 > 知识库问答 >
问题:

Python:re.sub删除不同情况下两个分隔符之间的单词

孙光临
2023-03-14

我有一个包含如下模式的字符串

"something [[remove|keep]] something [[keep]] something [[remove|remove|keep]] something" 

如何使用re。sub()或用于编辑此字符串的其他方法

"something keep something keep something keep something"

或者

"something [[keep]] something [[keep]] something [[keep]] something". 

(我可以在以后删除[[]]s。)

我尝试使用for循环对其进行硬编码,但字符串太长,需要很长时间才能运行。

共有1个答案

陶博耘
2023-03-14

可以使用正则表达式:(?

import re

s = "something [[remove|keep]] something [[keep]] something [[remove|remove|keep]] something"
print(re.sub("(?<=[\[\|])[^\[]*?\|", "", s))

输出:

something [[keep]] something [[keep]] something [[keep]] something

正则表达式(?

  • (?

 类似资料:
  • 问题内容: 我有一个嘈杂的数据。 现在我只想提取。有没有办法删除这两个定界符和之间的文本? 问题答案: 使用正则表达式: [更新] 如果您尝试过类似的模式,其中的点表示任何字符,而加号表示一个或多个,则您知道它不起作用。 为什么!?!这是因为正则表达式默认情况下是“贪婪的”。该表达式将匹配字符串之前的所有内容,包括-,这不是我们想要的。我们要匹配并在下一个处停止,因此我们使用的模式表示“除x外的任

  • 我必须删除python中以开头和以结尾的字符串(例如,我必须用空字符串替换字符串)。但这里的问题是它可以从三个或四个或任意数量的开始。我尝试使用regex。但是当它在上运行时,它将作为输出而不是空字符串。你能给我一些建议吗?

  • 问题内容: 我有这样的java字符串: 我想删除标签。我还有一些其他字符串,其中标签的长度更长,因此我想找到一种方法来删除“ <>”字符之间的所有内容,包括那些字符。 一种方法是使用将字符串与regEx进行比较的内置字符串方法,但是我不知道如何编写它们。 问题答案: 注意使用正则表达式时,解析HTML(由于其允许的复杂性),但是,对于“简单” HTML,以及简单的文本(文本没有字面建议或它)这将工

  • 问题内容: 我想删除两个字符之间以及字符本身之间的字符串,例如说: 我想替换“#?”之间所有出现的字符串 和“;” 并用字符将其删除。 由此 对此 我怎么能用Java做到呢? 问题答案: 使用正则表达式:

  • 我需要在“新日期碎片”和“新事件框架”之间传递字符串 curDate,我看到很多人使用捆绑包,但使用这些我仍然具有空点例外。 我将日历视图转换为一个名为 curDate 的字符串。 我的日志: threadid=1:线程因未捕获的异常而退出(group=0x41640d88) 谢谢你的帮助!

  • 我正在建立一个应用程序,并使用MariaDB作为我的数据库。我有一张桌子“kick_votes”。其主键包含三个字段: null