Won*_*ane 6 php regex preg-replace
我一直试图从两个标签之间的网站中删除一段文字.例如:
This is CROPSTART not very CROPEND cool.
Run Code Online (Sandbox Code Playgroud)
......应该成为......
This is cool.
Run Code Online (Sandbox Code Playgroud)
这是我尝试过的PHP,通常它可以工作:
preg_replace('#\/\/CROPSTART[\s\S]+\/\/CROPEND#', '', $string);
Run Code Online (Sandbox Code Playgroud)
但是,当字符串包含多个"CROPEND"时,它会裁剪从CROPSTART到最后一个CROPEND的所有内容.我希望它只能在第一个CROPSTART和第一个 CROPEND 之间进行裁剪.
有人知道怎么做吗?
谢谢Wonko
Mar*_*cny 19
但是,当字符串包含多个"CROPEND"时,它会裁剪从CROPSTART到最后一个CROPEND的所有内容.
这是因为您的+操作员贪婪 - 它不会在第一个实例停止CROPEND并继续直到它遇到最后一个实例.
您+只需在?其后附加一个非贪婪的操作符即可使用它:
preg_replace('/CROPSTART[\s\S]+?CROPEND/', '', $string);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12708 次 |
| 最近记录: |