我正在使用正则表达式来捕获引号中的文本。它可以工作,但纯文本是源文件,已将单个智能引号转换为撇号。
对于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'
答案 0 :(得分:2)
我还建议像@Wiktor评论的非单词边界(\B
),但也使用反向引用(\1
)来匹配与起始引号字符相同的引号字符:
regex = r"\B([\"'`]).+?\1\B"