关于正则表达式匹配需要的东西

 var str='<table><tr><td><img src="{objpath=/Project/Reports/demo/support/images/{val}.' + 'png}" /></td></tr></table>'
//我怎么根据正则表达式 提取出 {objpath=/Project/Reports/demo/support/images/{val}.' + 'png}
阅读 2.3k
2 个回答

正则表达式献上:(?<=src=").*?(?=")
好用了给个采纳,有用,谢谢

试了一把上面的正则在console

var str = '<table><tr><td><img src="{objpath=/Project/Reports/demo/support/images/{val}.' + 'png}" /></td></tr></table>'
str.match(/(?<=src=").*?(?=\")/)[0]
// -> "{objpath=/Project/Reports/demo/support/images/{val}.png}"

(?<=y)x 匹配'x'仅仅当'x'前面是'y'.这种叫做后行断言。

例如,/(?<=Jack)Sprat/会匹配到' Sprat '仅仅当它前面是' Jack '。/(?<=Jack|Tom)Sprat/匹配‘ Sprat ’仅仅当它前面是'Jack'或者是‘Tom’。但是‘Jack’和‘Tom’都不是匹配结果的一部分。

x(?=y) 匹配'x'仅仅当'x'后面跟着'y'.这种叫做先行断言。

例如,/Jack(?=Sprat)/会匹配到'Jack'仅仅当它后面跟着'Sprat'。/Jack(?=Sprat|Frost)/匹配‘Jack’仅仅当它后面跟着'Sprat'或者是‘Frost’。但是‘Sprat’和‘Frost’都不是匹配结果的一部分。

笔记摘抄自: 正则表达式

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题