正则表达式(将 br 和破折号转换为 li,或在 br 标签之间查找破折号)

regex (convert br and dash to li, or find dash between br tag)

如何将 PHP 上的“-”转换为列表 (li)?例子 HTML:

any text - any text  any text any text  any text any text 

<br><br>- any text any text<br>- any text 1 2 3 | \ ,<br><br>
<br>any text

我尝试使用以下正则表达式:

(<\s*[^>]*>-\s?(.*?)<\s*[^>]*>)

但是只能找到第一个匹配...

通过这个可以找到我需要的一切-从<br>标签开始,但它不能设置搜索的结束(它将在<br>标签中):

<br>\s?-\s?(.*?)(link 测试:https://regex101.com/r/CqjpzX/1)。

我不是 100% 确定这就是您要的,但是如果您想捕获 <br>-<br> 之间的所有内容,您需要使用这样的正则表达式。 <br>\s?-\s?(.*?)(?=<br>)

这是您的文本示例https://regex101.com/r/71cHQB/1

希望对您有所帮助

另外不要忘记正则表达式后的 /g,这样它不会在第一次匹配后停止。