gpt4 book ai didi

Javascript 正则表达式不工作

转载 作者:行者123 更新时间:2023-11-29 10:22:56 25 4
gpt4 key购买 nike

我有这个正则表达式:

 /.*v\=([\w-]+).*(&autoplay\=1)?/

我要匹配的是:

 http://www.youtube.com/watch?v=awmLS6GCJno&width=1000&height=300&autoplay=1

这是行不通的。 (它匹配 v=.. 但不匹配 autoplay=1)

但是,如果我将正则表达式更改为:

 /.*v\=([\w-]+).*(&autoplay\=1)/

(没有?在自动播放之后),那么它确实匹配两者..(但现在没有 &autoplay 的 URL 将不再匹配).. 这就是为什么我添加了?在那组之后..那是错的吗?还有别的办法吗?

糟糕的自动填充标题,显然不是问题所在。

最佳答案

您的 RegExp 确实有效,但可能不符合预期。

1. /.*v\=([\w-]+).*(&autoplay\=1)?/
2. /.*v\=([\w-]+).*(&autoplay\=1)/

  • 第一个 RegExp 有一个量词 ?,意思是:“不匹配或匹配一次”。
  • 该组以.*为前缀,意思是:“尽可能匹配任何东西(换行符除外)
  • 由于 ? 量词,RegExp 在 &autoplay=1 未分组时也有效(它将被 .* 匹配) >)

您可能正在寻找这个 RegExp。

/.*v=([\w-]+).*?(&autoplay=1|$)/

  • .*? 表示:“匹配任何内容(换行符除外),尽可能少地匹配 RegExp。
  • (&autoplay=1|$) 表示:“匹配&autoplay=1或字符串结尾($)。如果< em>字符串的结尾标识符被省略,.*? 将匹配NOTHING,因为.*? 对空字符串也是有效的。

关于Javascript 正则表达式不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7804607/

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