gpt4 book ai didi

javascript - 不确定如何在我的正则表达式中捕获斜线符号 "/"

转载 作者:行者123 更新时间:2023-11-29 21:12:25 26 4
gpt4 key购买 nike

我目前有一个正则表达式 /((http:\/\/.+(.net\/|.com\/))|^\/)(.+)$/gm 提取绝对路径或相对路径的相对 URL(我知道该路径要么是 .com 或 .net 域,要么完全是相对路径)。

它工作正常,只是我不知道如何将斜线放入最后一个捕获组。一些例子:

http://google.com/abcd/efg (captures "abcd/efg", but I want "/abcd/efg")
http://google.com/abcd (captures "abcd", but I want "/abcd")
http://google.com/ (Fail)
http://google.com (Fail)
/abcd (captures "abcd", but I want "/abcd")
/ (Fail)

感觉好像我遗漏了一些明显的东西,我们将不胜感激。

最佳答案

如果没有模式重新排序和分组构造边界更改,您将无法实现。

((http:\/\/.+(.net\/|.com\/))|^\/)第一个捕获组中,/ 斜杠应该移到第二组 (.+)

我建议使用

/(http:\/\/.+(\.net|\.com)|^)(\/.+)$/gm

参见 regex demo

详细信息:

  • (http:\/\/.+(\.net|\.com)|^) - 第 1 组:
    • http:\/\/.+(\.net|\.com) - http://,除换行字符外的任何 1+ 个字符,.net.com 捕获到第 2 组(如果此组是多余的,请将 (\.net|\.com) 替换为 \.(?:net|com))
    • | - 或者
    • ^ - 字符串的开始
  • (\/.+) - 第 3 组(或第 2 组):/ 斜杠和除换行符以外的任何 1+ 个字符。

关于javascript - 不确定如何在我的正则表达式中捕获斜线符号 "/",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41115930/

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