【发布时间】:2012-06-25 21:48:06
【问题描述】:
可能重复:
Regex question mark
我试图弄清楚如何解析出括号内但语句中单引号之间的文本。例如,如果我有以下语句:
(I have a 'cat', 'hat');
我希望结果是
cat
hat
我设法通过尝试维基百科 (http://en.wikipedia.org/wiki/Regular_expression) 中定义的不同元字符来解决这个问题,但我仍然无法理解它为什么起作用。
我试过这个:\'(.*)\'
我对这个正则表达式的理解:我想得到单引号 ' 之间的字符,并且这些字符匹配任何单个字符 . 零次或多次 *。
这导致:
cat', 'hat
在玩了一堆正则表达式之后,我终于意外地得到了这个:\'(.*?)\'
这导致:
cat
hat
为什么会这样? (特别是我不明白“?”是如何工作的。)
【问题讨论】:
-
regular-expressions.info/repeat.html ,尤其是“懒惰而不是贪婪”部分
标签: regex