Javascript 正则表达式匹配字符串';img&x27;仅在URL中(例如,不包括标记名)
我需要使用RegEx来通过Grunt任务查找要替换的字符串 我想用它们的外部URL交换本地引用的图像URL。文件结构在本地和外部都是相同的 我需要在URL的开头查找Javascript 正则表达式匹配字符串';img&x27;仅在URL中(例如,不包括标记名),javascript,regex,replace,Javascript,Regex,Replace,我需要使用RegEx来通过Grunt任务查找要替换的字符串 我想用它们的外部URL交换本地引用的图像URL。文件结构在本地和外部都是相同的 我需要在URL的开头查找/img或img(在img标记的src属性或CSS规则中)并在外部URL中交换 例如,查找/img/some photo.jpg或img/some photo.jpg并将/img或img替换为https://www.example.com/some-photo.jpg 我不能只查找img,因为这也会匹配以下HTML中的字符串,将标记转
/img
或img
(在img
标记的src
属性或CSS规则中)并在外部URL中交换
例如,查找/img/some photo.jpg
或img/some photo.jpg
并将/img
或img
替换为https://www.example.com/some-photo.jpg
我不能只查找img
,因为这也会匹配以下HTML
中的字符串,将标记转换为
我可以这样排除img
标记:
/\/img|(^ |[^\看起来您需要查看负向后查找,或者如果您的代码总是将属性括在单引号或双引号中,请将其包括在内
负查找解决方案类似于(?它应该匹配没有的任何字符串img
,我对这个问题想得太多了
如果图像都在一个目录img
中,那么我的标签后面应该跟一个正斜杠。标签(就这点而言,像img{}
)这样的CSS规则后面不跟一个正斜杠,因此我只需要查找img/
或/img
/)的匹配项
这可以通过/(\/?img\/)/gi
或换一种方式轻松实现:不要使用RegEx(单独使用)解析HTML。更幽默的是:使用HTML解析器解析HTML。有几种可以从Grunt使用。因为我使用的Grunt任务只能接受字符串来查找,或者只能接受正则表达式来查找匹配项。我个人希望使用Gulp和可以接受函数的任务。尽管我继承的代码库已经在使用Grunt和Grunt te谢谢。我使用的是JavaScript(Grunt是一个基于节点的任务运行程序),恐怕它不支持反向查找-我已经看过了:-)如果我能找到一种只匹配最后三个字符的方法,那可能会有用。哦,真的吗?我不知道,因为我只是对Grunt略知一二。引号解决方案仍然有效,你只需在替换文本中添加引号。或者甚至包括整个“src=\/?img”部分,以获得更具体的内容。