正则表达式匹配去掉结束字符

风行者
  • 28
<div id="content"><p>hello&nbsp;<img src="/ueditor/temp/imageupload/2017/08/02/5815c7a8-844c-41c6-aea2-68b05c4f66d5.jpg" alt="WechatIMG12572.jpg" width="379" height="563"></p><p><img src="/ueditor/temp/imageupload/2017/08/02/ece53d97-fc2a-4a1f-b438-d87d7521fe9a.jpg" alt="2f23a1c82ee2666fc988686d83a576f1.jpg"></p><p>balalalbaba</p></div>

我的正则匹配表达式:

(/ueditor/temp/imageupload/)(\S)*(\.)(\S)*(\")

结果是:
共找到 2 处匹配:
/ueditor/temp/imageupload/2017/08/02/5815c7a8-844c-41c6-aea2-68b05c4f66d5.jpg"
/ueditor/temp/imageupload/2017/08/02/ece53d97-fc2a-4a1f-b438-d87d7521fe9a.jpg"

请问下怎么把最后的单个双引号去掉呢?

回复
阅读 2.7k
4 个回答

最后加上[^"]试试呢

(/ueditor/temp/imageupload/)(\S)*(\.)(\S)*(?=\")

js 的正则中, ?= 跟所谓的零宽断言不太一样(本身应该是匹配 exp 之前的内容的,但 js 中视为匹配但不包含在结果中

/ueditor/temp/imageupload/[^"]+
img src="(.+?)"

最佳的解决方案是使用xpath或者其他html解析类库,不要用正则

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