gpt4 book ai didi

javascript - 是否可以仅使用环视来匹配前后不重复的字符?

转载 作者:行者123 更新时间:2023-12-05 02:33:21 24 4
gpt4 key购买 nike

例如,匹配URL中域名后的第一个斜杠。
意图:仅匹配 '.com/...' 中的 '/' 但不匹配 'https 中的任何 '/'://'.

url = 'https://example.com/...';
[
url.match( /(?<!\/)(?<slash>\/)(?!\k<slash>).../), // [A]
url.match(/(?<!\k<slash>)(?<slash>\/)(?!\k<slash>).../) // [B]
]

上面的[A]返回了正确的匹配,但是[B]是我想要的种类(虽然没有匹配到任何字符),也就是, 在正则表达式正文中仅使用 / 字符 1 次

是否有广义表达形式类似于[B](使用捕获组等)并且只使用正则表达式文字 (而不是使用构造函数 (RegExp))?

最佳答案

您可以在否定前瞻中的可选字符之后放置肯定回顾。 lookbehind 断言 2 个连续的斜杠(使用引用)。这样,lookbehind 测试捕获的斜杠位置以及之前的位置。显然,当它成功时,否定前瞻失败。

/(\/)(?!.?(?<=\1{2}))/

(随意使用命名捕获)

或没有捕获:

/\/(?!.?(?<=\/\/))/

关于javascript - 是否可以仅使用环视来匹配前后不重复的字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71012467/

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