正则表达式跳过分隔符是否前面有/

问题描述 投票:0回答:1

我正在使用:

\b(?<=,)http.*?(?=,)\b

当我尝试使用它时出现问题:

Something,https://stackoverflow.com/questions/ask/,Anotherthing

当它工作时:

Something,https://stackoverflow.com/questions/ask,Anotherthing

因此,如果 / 位于分隔符之前,则表达式似乎会跳过它。请帮助我,我已经被困在这个问题上一整天了。

我尝试将其更改为:

\b(?<=,)http.*[\/],(?=,)\b

但是它不起作用也不起作用

\b(?<=,)http.*\/,(?=,)\b

我希望它选择任何链接,直到 , 分隔符,即使逗号在 / 前面。 谢谢你的帮助。我是菜鸟,抱歉,如果这很容易的话。

regex regex-lookarounds
1个回答
0
投票

由于 url 中不能出现逗号,因此可以使用

[^,]
:

将 url 中的字符缩小为非逗号
\b(?<=,)http[^,]*(?=,)\b

您也不需要?对于可选字符,* 已经表示零个或多个字符。

© www.soinside.com 2019 - 2024. All rights reserved.