2016-12-31 53 views
1

我试图捕获所有出现的GitHub风味降价代码块,然后从我的应用程序的最终结果中删除它们。我有一个匹配的RegEx模式,可以在这里看到:http://www.regexpal.com/?fam=96555,但是当我在preg_replace函数中运行它时,它无法删除代码块。preg_replace GitHub风味降价代码块并删除

这里是我运行的preg_replace功能:

preg_replace("/(```[a-z]*\n[\s\S]*?\n```)/", "", $content); 

这里是原来的内容我跑它反对,通过上述功能运行时,它返回不变:

```php 
<?php echo 'test'; ?> 
``` 
Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia 
Curae; Donec velit neque, auctor sit amet aliquam vel, ullamcorper sit amet ligula. 
Donec rutrum congue leo eget malesuada. Curabitur non nulla sit amet nisl 
tempus convallis quis ac lectus. Donec sollicitudin molestie malesuada. Nulla 
porttitor accumsan tincidunt. Curabitur aliquet quam id dui posuere blandit. 

的最终结果应该是:

Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia 
Curae; Donec velit neque, auctor sit amet aliquam vel, ullamcorper sit amet ligula. 
Donec rutrum congue leo eget malesuada. Curabitur non nulla sit amet nisl 
tempus convallis quis ac lectus. Donec sollicitudin molestie malesuada. Nulla 
porttitor accumsan tincidunt. Curabitur aliquet quam id dui posuere blandit. 

任何帮助,将不胜感激。谢谢!

回答

1

试试\R这是任意换行顺序而不是\n的换码。

preg_replace('/```[a-z]*\R.*?\R```/s', "", $content); 
  • 也许你已经和\n\r之间[a-z]
  • 要检查通过进一步使用.*?点匹配所有标志[a-z]*\r?\n
  • 更换[a-z]*\ns

Here is a demo at eval.in

另请注意,使用双引号(而非问题)时,您的模式的确看起来为like this

+0

现货!非常感谢你! – voodooGQ