gpt4 book ai didi

javascript - 简化 JavaScript 正则表达式

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

如何简化我的正则表达式 (^(\w+)\/(\w+)\/(\d+)$|^(\w+)\/(\w+)\/$|^(\w+)\/(\w+)$) 来匹配像 controller/action(/id) 这样的例子?我当前的正则表达式看起来又长又复杂:(

匹配示例:

controller/action
controller/action/
controller/action/123

不匹配:

controller/
controller/action/action
controller/action/123/
controller/action/123/456

最佳答案

您可以使用以下具有可选组的正则表达式:

^(\w+)\/(\w+)(?:\/(\d+)?)?$
^^^ ^ ^

参见 regex demo

这个正则表达式匹配:

  • ^ - 字符串的开始
  • (\w+) - 一个或多个字母数字或下划线字符
  • \/ - / 符号
  • (\w+) - 一个或多个字母数字或下划线字符
  • (?:\/(\d+)?)? - 可选(一次或零次出现)序列(由于 (?:...)?构造,一个非捕获组 (?:...) + 一个 ? - 一或零 - 量词)匹配
    • \/ - 正斜杠
    • (\d+)? - 可选的 capturing 匹配一个或多个数字的组(但是这个组可以丢失,因为 ? 量词是应用于整个组 (...))
  • $ - 字符串 anchor 的结尾。

关于javascript - 简化 JavaScript 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35419498/

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