在Java中搜索和匹配正则表达式

时间:2020-06-12 16:45:12

标签: javascript regex

我正在尝试从另一组YouTube网址获取youtube视频ID。我写了下面的正则表达式,用于从一组youtube URL获取视频ID。我用python写的。

但是

问题是我们也可以在javascript中实现相同的逻辑吗?由于我刚接触javascript,因此需要帮助。

if data.startswith('https://') or data.startswith('http://'):
        v = re.search("(?:\/|%3D|v=|vi=)([0-9A-z-_]{11})(?:[%#?&]|$)", data)
        data="https://www.youtube.com/watch?v="+v.group(1)

*上面的代码在python中,数据是一个YouTube URL。 (我已经尝试过多次,但是对我没有用,因此在这里。)

2 个答案:

答案 0 :(得分:0)

JS具有相同的功能,因此其功能将相同JS startsWith function

答案 1 :(得分:0)

与JavaScript startswith等效的是startsWith

re.search()的JS等效项是String.prototype.match()。它返回一个包含整个匹配和捕获的组的数组。

A-z是正则表达式中的错误范围。使用A-Za-z以及i修饰符使正则表达式不区分大小写。

var data = 'http://www.youtube.com/watch?v=-wtIMTCHWuI';
if (data.startsWith('https://') || data.startsWith('http://')) {
  v = data.match(/(?:\/|%3D|v=|vi=)([0-9A-Z-_]{11})(?:[%#?&]|$)/i);
  if (v) {
    data = "https://www.youtube.com/watch?v=" + v[1];
  }
  console.log(data);
}