我正在尝试匹配,直到第一次出现 &
为止。现在它只匹配最后一次出现的 &
。
我的正则表达式是
(?!^)(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
最佳答案
像这样使用非贪婪模式:
/(?!^)(http[^\\]+?)&/
// ^
在非贪婪模式(或惰性模式)下,匹配将尽可能短。
如果你想摆脱 &
那么只需将它包装在一个前瞻组中,这样它就不会像这样出现在比赛中:
/(?!^)(http[^\\]+?)(?=&)/
// ^^ ^
或者您可以像@apsillers 在下面的评论中建议的那样优化正则表达式:
/(?!^)(http[^\\&]+)/
注意 &
不是特殊字符,不需要转义,
关于javascript - 正则表达式:匹配直到第一次出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42356727/