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

时间:2020-01-03 12:53:26

标签: php regex preg-replace

如何在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?(.*?)(链接到测试:https://regex101.com/r/CqjpzX/1)。

1 个答案:

答案 0 :(得分:0)

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

以下是您的文字https://regex101.com/r/71cHQB/1

的示例

我希望这可以为您提供帮助。

也不要忘记正则表达式之后的/ g,因此它不会在第一个匹配项后停止。