我需要一个正则表达式来分隔每个单词和<br/>

时间:2016-07-29 22:59:08

标签: regex

我需要的是超级直接但我简直无法理解。我正在使用regex101.com尝试确定正确的正则表达式,但似乎没有任何效果。

基本上我需要的是在数组中创建单词列表和<br>标签。

可以是这些<br>标记中的任何一个,<br>, <br/>, <br >, <br />

所以Lorem ipsum dolor sit amet, consectetur adipiscing elit.<br /><br />Duis eu metus porttitor, maximus elit vitae, sodales leo.

我需要一个能给我的表达

["Lorem ", "ipsum ", "dolor ", "sit ", "amet, ", "consectetur ", "adipiscing ", "elit.", "<br />", "<br />", "Duis ", "eu ", "metus ", "porttitor, ", "maximus ", "elit ", "vitae, ", "sodales ", "leo. "]

到目前为止我只有/\S+\s+/g,但这只是寻找空格。

3 个答案:

答案 0 :(得分:1)

您需要在<br>标记的正则表达式中使用替代方法。

/<br\s*\/?>|\S+?(\.|\s+)/g

答案 1 :(得分:0)

这个怎么样:PYTHONPATH

Regex101 demo

答案 2 :(得分:0)

使用PHP正则表达式引擎(pcre),你可以做到(使用preg_match_all

~(?><br\b[^>]*>|\s+)*\K\w+[^<\w]*~

demo

~           # pattern delimiter
(?>         # open an atomic group
    <br\b[^>]*> # a br tag
  |             # OR
    \s+         # one or more whitespaces
)*          # close the atomic group, repeat zero or more times
\K          # start the match result at this point
\w+       # word characters
[^<\w]*   # eventual non-word characters except an opening angle bracket
~