gpt4 book ai didi

javascript - 正则表达式以任意顺序匹配可选标记

转载 作者:行者123 更新时间:2023-11-28 07:12:15 25 4
gpt4 key购买 nike

我正在制作一个带有 token 的 URL 解析器来过滤返回的结果,这些 token 是可选的,可以按任何顺序设置,我只需要在参数存在时获取它们。

我已经制作了一个可以获取 token 的正则表达式,但顺序很重要:

\/test(\/page\/[0-9]+)?(\/criticality\/[0-9]+)?(\/order\/[a-zA-Z0-9]+)?

你可以测试一下here

在此示例中,我将获得 /page/1/order/toto/riticity/5 但未获得关键性.

如何以任意顺序获取任意代币?

最佳答案

您可以在模式开头使用正向先行获取它们,并捕获先行中的文本,但您将列出所有可能的值组合,这使得正则表达式解决方案看起来很难看:

^(?=.*\/test(\/page\/[0-9]+))(?=.*(\/criticality\/[0-9]+))(?=.*(\/order\/[a-zA-Z0-9]+))|^(?=.*\/test(\/page\/[0-9]+))(?=.*(\/order\/[a-zA-Z0-9]+))|^(?=.*\/test(\/page\/[0-9]+))(?=.*(\/criticality\/[0-9]+))|^(?=.*(\/criticality\/[0-9]+))(?=.*(\/order\/[a-zA-Z0-9]+))|^(?=.*(\/criticality\/[0-9]+))|^(?=.*(\/order\/[a-zA-Z0-9]+))|^(?=.*\/test(\/page\/[0-9]+))

参见demo

如您所见,正则表达式不可维护。您使用 / 分割输入字符串,然后检查数组是否包含您的键。如果是,您将获得该键后面的元素的值。

关于javascript - 正则表达式以任意顺序匹配可选标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31181405/

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