好的,考虑使用以下示例字符串。
Duis posuere suscipit lacus quis lacinia. In molestie lectus sed.
<li>test line here</li>
<li>Second test</li>
<li>Third test</li>
<li>Another test</li>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis posuere suscipit lacus quis lacinia. In molestie lectus sed.
\* Aliquam posuere sapien id elit sodales at vestibulum lacus porttitor.
*hej
A * hejdu
<li>hejsan</li>
<li>Another item</li>
Lorem ipsum dolor sit amet, consectetur adipidsa
<li>Lonely list item</li>
所以我想说我要在ul元素中包含三个 li blocks ,这样我就会将四个第一个li元素包装在一个ul中,第二个块中的两个元素包含在一个ul中最后一个包裹在一个ul。我正在考虑正则表达式,但我不知道我是如何建立这样的正则表达式。也许还有其他选择吗?
答案 0 :(得分:1)
如果这是源转换,那么正则表达式可能是一个选项它取决于格式是否一致。但是你可以使用类似的东西:
= preg_replace("#(^<li>.*?</li>\s*)+#m", "<ul>$0</ul>", $content);
诀窍是寻找可以使用(...)+
多次出现的内容,而内部部分仅限于完全匹配<li>..</li>
,甚至需要位于行的^
开头
可能还有其他选择。但我无法想象如何用DOM方法包装li-groups,因为你从一个文本文档开始。