我试着用这个
(?=<[^<>]+>)(?=.*<[^<>]+src=(.*?).?+alt=(.*?).?+width=.*?>).*
使用此字符串
<img class=""aligncenter wp-image-27545"" src=""http://www.obrasenmiciudad.df.gob.mx/wp-content/uploads/2012/01/Imagen2-150x113.png"" alt="""" width=""398"" height=""279"" /> 5645 4684 9849 8498 498 4984 9846541513213
但我发现整个字符串,我需要在&gt;之后找到没有数字的字符串,就像这样
<img class=""aligncenter wp-image-27545"" src=""http://www.obrasenmiciudad.df.gob.mx/wp-content/uploads/2012/01/Imagen2-150x113.png"" alt="""" width=""398"" height=""279"" />
答案 0 :(得分:1)
您提供的表达式有两个非消耗的验证表达式(以?=开头的位)。最后的一点将匹配&amp;消耗你想要的一点。 所以这可能对你有用
(?=<[^<>]+>)(?=.*<[^<>]+src=(.*?).?+alt=(.*?).?+width=.*>)(.*\/>)
答案 1 :(得分:0)
我不知道你究竟想做什么,但你不需要所有这些无用的前瞻。而不是使用太多许可的.*
并且会产生大量的回溯,你应该使用字符类来限制子模式匹配:
<img[^>]*?\ssrc=([^>\s]*+)[^>]*?\salt=(""[^"]*"")[^>]*>