2016-07-29 14 views
-1

Was ich brauche, ist super direkt, aber ich kann es einfach nicht herausfinden. Ich benutze regex101.com, um zu versuchen, die richtige Regex zu finden, aber nichts scheint zu funktionieren.Ich brauche einen Regex-Ausdruck, um jedes Wort zu trennen und <br>

Grundsätzlich, was ich brauche, ist eine Liste von Wörtern und <br> Tags in einem Array zu erstellen.

Es jeder dieser <br> Tags sein könnte, <br>, <br/>, <br >, <br />

Also für Lorem ipsum dolor sit amet, consectetur adipiscing elit.<br /><br />Duis eu metus porttitor, maximus elit vitae, sodales leo.

brauche ich einen Ausdruck, der mir geben

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

Bisher alles, was ich habe, ist /\S+\s+/g aber das ist nur nach Räumen suchen.

Antwort

1

Sie benötigen eine Alternative in der Regex für <br> Tags.

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

Wie wäre es damit: /(<br.*?>|[\w\.\,]+)/g

Regex101 demo.

0

Mit der PHP Regex-Engine (PCRE) Sie können das tun, (mit 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 
~ 
Verwandte Themen