javascript - 正则表达式:匹配直到第一次出现

标签 javascript regex

我正在尝试匹配,直到第一次出现 & 为止。现在它只匹配最后一次出现的 &

我的正则表达式是

(?!^)(http[^\\]+)\&

我正在尝试匹配此文本:

https://www.google.com/url?rct3Dj&sa3Dt&url3Dhttp://business.itbusinessnet.com/article/WorldStage-Supports-Massive-4K-Video-Mapping-at-Adobe-MAX-with-Christie-Boxer-4K-Projectors---4820052&ct3Dga&cd3DCAEYACoTOTEwNTAyMzI0OTkyNzU0OTI0MjIaMTBmYTYxYzBmZDFlN2RlZjpjb206ZW46VVM&usg3DAFQjCNE6oIhIxR6qRMBmLkHOJTKLvamLFg

我需要的是:

http://business.itbusinessnet.com/article/WorldStage-Supports-Massive-4K-Video-Mapping-at-Adobe-MAX-with-Christie-Boxer-4K-Projectors---4820052

Click for the codebase.

最佳答案

像这样使用非贪婪模式:

/(?!^)(http[^\\]+?)&/
//               ^

在非贪婪模式(或惰性模式)下,匹配将尽可能短。

如果你想摆脱 & 那么只需将它包装在一个前瞻组中,这样它就不会像这样出现在比赛中:

/(?!^)(http[^\\]+?)(?=&)/
//                 ^^  ^

或者您可以像@apsillers 在下面的评论中建议的那样优化正则表达式:

/(?!^)(http[^\\&]+)/

注意 & 不是特殊字符,不需要转义,

关于javascript - 正则表达式:匹配直到第一次出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42356727/

相关文章:

javascript - 如何在javascript上获取单元格值进行确认?

JavaScript 简单正则表达式 - 限制字符串的第一个字符恰好为 '#'

PHP 正则表达式 : extract last number in filename

javascript - Three.js - 获取鼠标点击的X、Y、Z坐标

javascript - 将谷歌日历 API 集成到 React hooks

java - 编写正则表达式来分割字符串

mysql 正则表达式 utf-8 字符

java - 正则表达式替换 Windows 在文件名中不接受的字符

javascript - mongodb/mongoose - 使用 $ 运算符更新会丢失 _id

javascript - 如何在React上正确开发分页?