我有两个句子作为输入。比如说:
<span>I love my red car.</span>
<span>I love my car.</span>
现在我想匹配跨度标签内的每个文本部分,如果有的话,颜色。
如果我使用以下正则表达式:
/<span>(.*?)(?P<color>red)(.*?)<\/span>/ms
只有与颜色匹配的线。所以我想让我们使用 ?-operator (一或零)。
/<span>(.*?)(?P<color>red)?(.*?)<\/span>/ms
现在两行/句子都将匹配。可惜颜色已经不匹配了。
问题是为什么?通过使用 ”。*?” 在颜色部分之前,我认为我已经使正则表达式不贪婪,以便颜色部分匹配,如果它存在的话。但正如所说,它不...