Notepad ++正则表达式搜索2个条件

时间:2015-03-04 19:34:19

标签: regex notepad++

我试着用这个

(?=<[^<>]+>)(?=.*<[^<>]+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"" /> 

2 个答案:

答案 0 :(得分:1)

您提供的表达式有两个非消耗的验证表达式(以?=开头的位)。最后的一点将匹配&amp;消耗你想要的一点。 所以这可能对你有用

(?=<[^<>]+>)(?=.*<[^<>]+src=(.*?).?+alt=(.*?).?+width=.*>)(.*\/>)

答案 1 :(得分:0)

我不知道你究竟想做什么,但你不需要所有这些无用的前瞻。而不是使用太多许可的.*并且会产生大量的回溯,你应该使用字符类来限制子模式匹配:

<img[^>]*?\ssrc=([^>\s]*+)[^>]*?\salt=(""[^"]*"")[^>]*>