gpt4 book ai didi

php - 匹配文本 block 到第一个双新行的正则表达式?

转载 作者:可可西里 更新时间:2023-10-31 22:16:55 25 4
gpt4 key购买 nike

我正在制作一个简单的 Textile 解析器,并尝试为“blockquote”编写正则表达式,但在匹配多个新行时遇到困难。示例:

bq. first line of quotesecond line of quotethird line of quotenot part of the quote

它将通过 preg_replace() 替换为 blockquote 标签,所以基本上它需要匹配 "bq." 和它遇到的第一个双新行之间的所有内容。我能做到的最好的事情就是得到报价的第一行。谢谢

最佳答案

试试这个正则表达式:

(?s)bq\.((?!(\r?\n){2}).)*+

含义:

(?s)           # enable dot-all option
b # match the character 'b'
q # match the character 'q'
\. # match the character '.'
( # start capture group 1
(?! # start negative look ahead
( # start capture group 2
\r? # match the character '\r' and match it once or none at all
\n # match the character '\n'
){2} # end capture group 2 and repeat it exactly 2 times
) # end negative look ahead
. # match any character
)*+ # end capture group 1 and repeat it zero or more times, possessively

\r?\n 匹配 Windows、*nix 和(较新的)MacOS 换行符。如果您需要考虑真正的旧 Mac 计算机,请向其中添加单个 \r:\r?\n|\r

关于php - 匹配文本 block 到第一个双新行的正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2222209/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com