如何使用python正则表达式获取两个标记之外的字符串?

如何使用python正则表达式获取两个标记之外的字符串?,python,arrays,regex,string,Python,Arrays,Regex,String,例如,假设我有以下字符串: str1=“这本书里有!27篇论文!马上!还有一个记号笔!”, 我希望它能返回一个在“!”之外的单词列表马克 所以对于这个问题:[“有”、“有”、“书”、“现在”] 我尝试过使用re.findall('!(.+?)!',str1)使用python正则表达式,但这返回了'!'中的内容不是外面的。这应该足够近,但不要使用re [s for w in str1.split('!')[::2] for s in w.split()] 即使使用re,您也需要花费精力清理标点符

例如,假设我有以下字符串:
str1=“这本书里有!27篇论文!马上!还有一个记号笔!”

我希望它能返回一个在“!”之外的单词列表马克

所以对于这个问题:
[“有”、“有”、“书”、“现在”]


我尝试过使用
re.findall('!(.+?)!',str1)
使用python正则表达式,但这返回了'!'中的内容不是外面的。

这应该足够近,但不要使用re

[s for w in str1.split('!')[::2] for s in w.split()]

即使使用re,您也需要花费精力清理标点符号的结果。

这应该足够接近,但不要使用re

[s for w in str1.split('!')[::2] for s in w.split()]

即使使用re,您也需要花费精力清理标点符号的结果。

最简单的方法是替换。

str1 = "There are !27 papers in! the book !right! now. !Also a marker.!"
re.sub(r'(!.+?!)','',str1)


最简单的方法是替换。

str1 = "There are !27 papers in! the book !right! now. !Also a marker.!"
re.sub(r'(!.+?!)','',str1)