gpt4 book ai didi

regex - 如何使用正则表达式在 .* 之后直接用 $ 结束字符串?

转载 作者:行者123 更新时间:2023-12-03 16:30:33 29 4
gpt4 key购买 nike

我正在尝试报告一组捕获所有潜在 URL 参数的 URL,但我在正确定义 RegEx 时遇到问题。

我们有这个正则表达式来捕获我们的 URL 的一些变体以输入到我们的报告中,但我需要能够以 $ 结束字符串,但是当我这样做时,它不会显示任何结果。

正则表达式:
/join/$|/join/\?product.*|/join/\.*
对于另一个帐户,我们只使用下面概述的一个变体(有效):
^/join/$
我相信问题在于 \?product.* 之后,我没有结束字符串(甚至没有开始它)。

到目前为止,我已经尝试过:^/join/$|(^[/join/\?product.*]$)|(^[/join/\.*]$)没有运气。

最佳答案

如果你想从字面上匹配美元符号,你必须将它转义 \$否则这将意味着一个 anchor 来断言字符串/行的结尾。

此模式^/join/$因此只会匹配 /join/
在您的模式中,您使用最后一部分 /join/\.* 的替换。将匹配 /join/还有/join/.....因为当你转义点时,你会从字面上匹配它和 *量词重复0+次。

也许您正在寻找:

^/join/(?:\?product.*\$)?$

这将匹配 /join/后跟可选部分 (?:\?product.*\$)?这将匹配 ?product,后跟任何 char 0+ 次,并将在 $ 结束.

Regex demo

关于regex - 如何使用正则表达式在 .* 之后直接用 $ 结束字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56536220/

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