gpt4 book ai didi

regex - 捕获之间或之后/之前的最后一个元素?

转载 作者:行者123 更新时间:2023-12-02 02:58:29 25 4
gpt4 key购买 nike

假设我有以下网址:

https://test.com/welcome/
https://sub.test.com/home/edit
https://test.com/home/view?view=column
https://test.com/home/view/?view=list

我想捕获以下结果:

welcome
edit
view
view

现在我有 (?:\/[^\/]+)+?\/(.*?)/{0,1}$, (?:\/[^\/]+)+?(?:.*\/)(.*?)\?{0,1}$(?:\/[^\/] +)+?(?:.*\/)(.*)/\?.*$ 但它们很复杂,我似乎无法将它们组合起来。

最佳答案

在 Splunk 中,您可以使用正则表达式来匹配所有文本,直到最后一次出现 /后跟除 / 之外的任何 1+ 个字符, ?#并且可以使用命名捕获组捕获这 1 个以上的字符:

".*/(?<lasturlpart>[^/?#]+)"

请参阅regex demo 。请注意\n(?:/?(?:[#?].*|$))my top comment在演示中使用,以确保匹配不会跨行溢出,因为演示中的输入是单个多行字符串,而您将针对独立字符串使用正则表达式。

图案详细信息

  • .* - 除换行符之外的任何 0 个或多个字符,尽可能多
  • / - 一个/字符
  • (?<lasturlpart>[^/?#]+) - 命名捕获组匹配除 / 之外的 1 个或多个字符, ?# .

关于regex - 捕获之间或之后/之前的最后一个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60551904/

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