-6ren">
gpt4 book ai didi

Java Regex matches() 返回 false 但在浏览器中有效

转载 作者:行者123 更新时间:2023-12-01 13:01:35 25 4
gpt4 key购买 nike

嗨,我有一个正则表达式

(https?:\/\/)?(www\.)?(youtu\.be\/|youtube\.com\/(watch\?(.*&)?v=|(embed|v)\/))([^\?&"'>]+)

当我针对 http://youtu.be/QlgDPA9o21A 运行它时在浏览器中它是匹配的但是不在java中

这是代码

Pattern pattern = Pattern.compile("(https?:\\/\\/)?(www/.)?(youtu\\.be\\/|youtube\\.com\\/(watch\\?(.*&)?v=|(embed|v)\\/))([^\\?&\"'>]+)");
Matcher matcher = pattern.matcher(url);

if (matcher.matches() && matcher.groupCount() == 7) {
return matcher.group(7);
} else {
return null;
}

最佳答案

在 Java 中,您不需要转义每个正斜杠。

就像你正在做的那样 \\/ 应该只是 /

您的模式将是:

Pattern pattern = Pattern.compile("(https?://)?(www\\.)?(youtu\\.be/|youtube\\.com/(watch\\?(.*&)?v=|(embed|v)/))([^\\?&\"'>]+)");

关于Java Regex matches() 返回 false 但在浏览器中有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23478451/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com