【发布时间】:2016-02-20 00:03:17
【问题描述】:
给定以下简单的正则表达式,其目标是捕获引号字符之间的文本:
regexp = '"?(.+)"?'
当输入类似于:
"text"
捕获组(1)有以下内容:
text"
我希望 group(1) 只有text(不带引号)。有人可以解释发生了什么以及为什么正则表达式捕获" 符号,即使它在捕获组#1 之外。我不明白的另一个奇怪行为是为什么第二个引号字符被捕获但不是第一个,因为它们都是可选的。最后我使用以下正则表达式修复了它,但我想了解我做错了什么:
regexp = '"?([^"]+)"?'
【问题讨论】: