Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我的正则表达式在哪里出错了?_Php_Regex_Markdown - Fatal编程技术网

Php 我的正则表达式在哪里出错了?

Php 我的正则表达式在哪里出错了?,php,regex,markdown,Php,Regex,Markdown,我试图从降价格式的文档中提取第一段: 这是第一段 这是第二段 给了我一个匹配以双换行符结尾的第一个字符串的解决方案 完美,除了一些文本以标记样式标题开头外: ###这是一个h3标题 这是第一段 因此,我需要: 跳过以一个或多个#符号开头的任何行 匹配以双换行符结尾的第一个字符串 换言之,在上述两个示例中返回“这是第一段” 到目前为止,我在以下方面尝试了许多变化: "/(?s)(?:(?!\#))((?!(\r?\n){2}).)*+/ 但我不能让它返回正确的匹配 我在环顾四周时哪

我试图从降价格式的文档中提取第一段:

这是第一段

这是第二段

给了我一个匹配以双换行符结尾的第一个字符串的解决方案

完美,除了一些文本以标记样式标题开头外:

###
这是一个h3标题

这是第一段

因此,我需要:

  • 跳过以一个或多个
    #
    符号开头的任何行
  • 匹配以双换行符结尾的第一个字符串
换言之,在上述两个示例中返回“这是第一段”

到目前为止,我在以下方面尝试了许多变化:

"/(?s)(?:(?!\#))((?!(\r?\n){2}).)*+/
但我不能让它返回正确的匹配

我在环顾四周时哪里出错了

我正在用PHP(preg_match())做这件事,如果这有区别的话

谢谢

你可以试试

"/(?sm)^[^#](?:(?!(?:\r\n|\r|\n){2}).)*/"
我通过使用
(?sm)
而不是
(?s)
启用多行选项,并在新行开始检查,新行可能不以#开头。我使用了
\r\n |\r |\n
而不是
\r?\n
,因为我的测试环境有有趣的换行符=)

你可以试试

"/(?sm)^[^#](?:(?!(?:\r\n|\r|\n){2}).)*/"
我通过使用
(?sm)
而不是
(?s)
启用多行选项,并在新行开始检查,新行可能不以#开头。我使用了
\r\n |\r |\n
而不是
\r?\n
,因为我的测试环境有有趣的换行符=)

是的!非常感谢你!(现在开始了解更多有关(?sm)的信息)是的!非常感谢你!(现在开始了解有关(?sm)的更多信息。)