php - 如何隔离内容直到第一个双换行序列?

标签 php regex substring preg-replace preg-match

<ul>
    <li><a href="#">Foo</a></li>
    <li><a href="#">Foo</a></li>
    <li><a href="#">Foo</a></li>
</ul>

<ul>
    <li><a href="#">Bar</a></li>
    <li><a href="#">Bar</a></li>
    <li><a href="#">Bar</a></li>
</ul>

如何获取第一个空行之前的任何内容?

注意:内容的第一部分和第二部分并不总是以 ul 开头。

最佳答案

preg_match('/\A.*?(?=\s*^\s*$)/smx', $subject, $regs);
$result = $regs[0];

说明

preg_match(
    '/\A    # Start of string
    .*?     # Match any number of characters (as few as possible)
    (?=     # until it is possible to match...
     \s*    #  trailing whitespace, including a linebreak 
     ^      #  Start of line
     \s*    #  optional whitespace
     $      #  End of line
    )       # (End of lookahead assertion)/smx', 
    $subject, $regs);
$result = $regs[0];

假设您将只包含空格的行计为空行。如果没有,请删除“可选空白”行。

关于php - 如何隔离内容直到第一个双换行序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12910312/

相关文章:

python - 为什么要在 python 正则表达式中使用 re.purge()?

string - 计算给定字符串的所有可能子串

php - 更改 mPDF 上的页面大小并使浏览器自动打印显示的 PDF 文件

php 的 strip_tags() 不起作用

来自变量的 PHP 函数

php - mysql 产品和变体数据库架构

Ruby:从数组/字符串匹配数据中收集索引

android - 如何在 Android Studio 中找到所有相关的硬编码字符串?

Javascript/jQuery 从字符串中获取前 100 个字符,尊重完整的单词

java - 正则表达式从复杂字符串中提取子字符串