RegEx匹配来自close open标签的文本换行

时间:2022-11-29 12:10:38

follow string must be match

跟随字符串必须匹配

das is<C strike ><c1>t ein text </c1></C><C u ><c1>der </c1></C><C b u ><c1>hier </c1></C>im <C i u ><c1>editor </c1></C><u></u>steht

my regex don't work

我的正则表达式不起作用

>(.*?)<

thats match all text between tags, but i need only follow result, for my it's only the text interested was no warp from any TAG (for this sample like )

那些匹配标签之间的所有文本,但我只需要跟随结果,因为我只有感兴趣的文本没有来自任何TAG的扭曲(对于这样的样本)

match[0] ------> das is
match[1] ------> im 
match[2] ------> steht

but i become this:

但我变成了这个:

match[0] ------> das is
match[1] ------> t ein text 
match[2] ------> der 
match[3] ------> hier 
match[4] ------> im 
match[5] ------> editor 
match[6] ------> steht

1 个解决方案

#1


0  

I suggested this regex in another question, I guess this however fits your case perfectly:

我在另一个问题中建议了这个正则表达式,我想这无论如何完全适合你的情况:

(?:(?![^<>]*(?:>))[^<])+

regex101 demo

Use preg_match_all by the way.

顺便使用preg_match_all。

EDIT: You can try this:

编辑:你可以试试这个:

([^<>]+)(<[^>]+>(?:[^<>]*|(?2))</[^>]+>)*

viper-7 demo

Or another regex:

或另一个正则表达式:

(?:(?![^<>]*(?:>))[^<](?![^<>]*</))+

#1


0  

I suggested this regex in another question, I guess this however fits your case perfectly:

我在另一个问题中建议了这个正则表达式,我想这无论如何完全适合你的情况:

(?:(?![^<>]*(?:>))[^<])+

regex101 demo

Use preg_match_all by the way.

顺便使用preg_match_all。

EDIT: You can try this:

编辑:你可以试试这个:

([^<>]+)(<[^>]+>(?:[^<>]*|(?2))</[^>]+>)*

viper-7 demo

Or another regex:

或另一个正则表达式:

(?:(?![^<>]*(?:>))[^<](?![^<>]*</))+