这是一个简单的例子:
文本: <input name="zzz" value="18754" type="hidden"><input name="zzz" value="18311" type="hidden"><input name="zzz" value="17138" type="hidden">
正则表达式: /<input.*?value="(18754|17138)".*?>/
当匹配由空字符串替换时,结果为空字符串.我期待中间<input>保持,因为我使用非贪婪匹配(.*?).任何人都可以解释为什么它被删除?
有两场比赛:
<input name="zzz" value="18754" type="hidden"><input name="zzz" value="18311" type="hidden"><input name="zzz" value="17138" type="hidden">在第二种情况下,第一次.*?匹配name="zzz" value="18311" type="hidden"><input name="zzz".这是一场比赛而且非贪婪.