Regex与上次匹配后的文本不匹配



我正在尝试获取所有文本,但如果它在内联代码(`(或代码块(```(内,则不会获取。我的正则表达式运行良好,但最后一个文本不匹配,我不知道为什么。

我当前的正则表达式:

(.*?)`{1,3}(?:.*?)`{1,3}(.*?)

您可以在此处查看结果:https://regex101.com/r/lYQnUJ/1/

也许任何人都知道如何解决这个问题。

您可以使用

preg_split('~```.*?```|`[^`]*`~s', $text)

详细信息

  • ```-三重倒勾
  • .*?-任何零个或多个尽可能少的字符
  • ```-三重倒勾
  • |-或
  • `-背景
  • [^`]*-除反勾号之外的零个或多个字符
  • `-反调

查看正则表达式和PHP演示:

<?php
$text = 'your_text_here';
print_r(preg_split('~```.*?```|`[^`]*`~s', $text));

输出:

Array
(
[0] => some text here
some more

[1] => 
some 
[2] =>  too
and more code blocks:

[3] => 
this text isn't matched...
)

相关内容

  • 没有找到相关文章

最新更新