在Python中提取撇号之间的引号

时间:2018-01-23 09:14:11

标签: regex python-2.7 text quotes

我正在使用正则表达式来捕获引号中的文本。它可以工作,但纯文本是源文件,已将单个智能引号转换为撇号。

对于regex我有:

r("[\"|\'|\`].+[\"|\'|\`]")

正则表达式工作正常,但也在两个撇号之间抓取文本。有可能调整正则表达式,所以它不这样做吗?

"Come up and see me some time" # correct
'Yeah, I wonder if will pick this up to' #correct
`Mmmm. I wonder...` # correct
"Sorry about the mess!" #correct
We don't know who is human. Don't we? # Wrong. 

最后一个抓住

't know who is human. Don'

1 个答案:

答案 0 :(得分:2)

我还建议像@Wiktor评论的非单词边界(\B),但也使用反向引用(\1)来匹配与起始引号字符相同的引号字符:

regex = r"\B([\"'`]).+?\1\B"

在这里测试https://regex101.com/r/TOLYVc/3