惰性量词和 /s 修饰符

Lazy quantifier and /s modifier

我有一个小问题,没有找到任何解决方案:(

我尝试替换这段文字:

<table cellspacing="0" cellpadding="0" width="100%" border="0">
    <tbody>
        <tr>
            <td width="25%"><a href="http://www.test.com/myfile.pdf?min" target="_blank">Menus 18 €</a></div></td>
            <td width="25%"><a href="http://www.test.com/myfile.pdf?min" target="_blank">Menus 24 et 26 €</a></div></td>
            <td width="25%"><a href="http://www.test.com/myfile.pdf?min" target="_blank">Menus 30 et 37 € </a></div></td>
            <td width="25%"><a href="http://www.test.com/myfile.pdf?min">La Carte détaillée&nbsp;<br>
            (Entrées - Viandes - Poissons)</a></td>
        </tr>
    </tbody>
</table>

使用这个正则表达式:

/<a.*?href=\"(.+.pdf\?min)\".*?>(.*?)<\/a>/s

但它不会返回每个被 ok 替换的 link,它只会替换一次。我认为贪婪量词.*?可以做到这一点,但不是...

试一试:https://regex101.com/r/iF7dV0/1

提前致谢!

彼得

使用全局 g 修饰符,获取每一次出现

只要将中间的.+改为.+?,这样就可以进行非贪心匹配,否则会贪心匹配尽可能多的字符。

<a.*?href=\"(.+?.pdf\?min)\".*?>(.*?)<\/a>
               ^

DEMO