1

跟随字符串必须匹配

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

我的正则表达式不起作用

>(.*?)<

那匹配标签之间的所有文本,但我只需要关注结果,对我来说,只有感兴趣的文本没有来自任何标签的扭曲(对于这个示例,如)

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

但我变成了这样:

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

1 回答 1

0

我在另一个问题中建议了这个正则表达式,但我想这非常适合你的情况:

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

正则表达式101演示

顺便使用preg_match_all

编辑:你可以试试这个:

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

viper-7 演示

或另一个正则表达式:

(?:(?![^<>]*(?:>))[^<](?![^<>]*</))+
于 2013-10-01T08:17:30.330 回答