gpt4 book ai didi

javascript - 如何使用正则表达式验证捕获组中的最后一个字符

转载 作者:行者123 更新时间:2023-12-03 06:54:02 24 4
gpt4 key购买 nike

我想从 URL 中提取路径,并且我想使用正则表达式。
我正在使用这个正则表达式:^(?:https?:\/\/)?(?:[^@\n]+@)?(?:www\.)?([^:\n\?\=ֿ\#]+)还有一个副作用是最后一个 /被捕获。
例如-

domain.com/home/ = domain.com/home/
domain.com/home?param=value = domain.com/home
如何验证特定捕获组的最后一个字符不是 / ?
注意 - 我知道我可以用另一个正则表达式匹配来解决这个问题,但我认为它可以用一个来完成。

最佳答案

一种方法是添加 /到否定字符类不匹配它,并且仅当它后跟除 / 以外的任何字符时才匹配它或空白字符。

^(?:https?:\/\/)?(?:[^@\n]+@)?(?:www\.)?((?:[^:\n?=ֿ#\/]+|\/(?=[^\s\/])[^:\n?=ֿ#\/]*)*)
最后一部分将匹配
  • (捕获 第 1 组
  • (?:非捕获组
  • [^:\n?=ֿ#\/]+匹配除列出的任何字符,包括 /
  • |
  • \/(?=[^\s\/])匹配 /直接后跟除 / 以外的任何字符时或空白字符
  • [^:\n?=ֿ#\/]*匹配列出的
  • 以外的可选字符

  • )*关闭非捕获组并重复0+次以匹配多个/

  • )关闭第 1 组

  • Regex demo

    关于javascript - 如何使用正则表达式验证捕获组中的最后一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64479933/

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