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

Notepad++ regex search 2 conditions

我正在尝试使用这个

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

但是我找到了整个字符串,我需要找到>后面没有数字的字符串,像这样

<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"" /> 

您提供的表达式有两个非消耗性验证表达式(以 ?= 开头的位)。它是末尾的位,将匹配并消耗您想要的位。 所以这可能对你有用

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

我不知道你到底想做什么,但你不需要所有这些无用的前瞻。与其使用过于宽松且会产生大量回溯的大量 .*,不如使用字符 类 来限制子模式匹配:

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