gpt4 book ai didi

php - 正则表达式从自定义代码创建 html

转载 作者:太空宇宙 更新时间:2023-11-04 15:31:46 25 4
gpt4 key购买 nike

我有一个文本字段,用户可以在其中编写特定命令来获取一些 html。

例如:

Text Text Text Text

[*] first entry
[*] second entry
[*] 3rd...

Text Text

此文本应使用正则表达式转换为如下内容:

text text

<ol>
<li>FirstEntry</li>
<li>Second</li>
..
</ol>

text text

有什么建议吗?

与条目匹配的正则表达式是这样的:

/\[\*\].+/i

问题是如何正确插入<ol></ol>

我的解决方案

我在想我可以解析所有文本行,当解析器遇到以 [*] 开头的第一行时,然后放一个 <ol> </ol> 也一样

到目前为止,我已经制作了转换为单个的脚本 [*] ...<li> ...

http://codepad.org/yzRVupON

preg_replace('/\[\*\](.+)/i','<li>$1</li>',$str);

我需要 <ol>部分

我的实现

http://codepad.org/NNgC6uko

最佳答案

用正则表达式进行这种解析可能不是正确的方法;对于非常简单的场景,它可能没问题,但您尝试添加的功能越多,它就会变得越难——直到它变得无法维护。

我建议从例如各种 MarkDown 解析器;见these questions了解更多信息(还有其他信息)。

回到最初的问题:如果你被限制只能使用正则表达式,你可以尝试先用类似的东西匹配整个“列表 block ”

/^(\s*\[\*\].*?$)+/m

(多行模式modifier必不可少)

然后,您可以使用当前的正则表达式将匹配的文本分解为单独的列表项,然后用 <ol></ol> 包围结果来生成输出。 .

关于php - 正则表达式从自定义代码创建 html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13323095/

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