使用正则表达式匹配URL的部分

4

你想提取哪些“部分”?是用什么“语言”? - hwnd
你在找什么?报告吗?还是报告?ref_=kdp_BS? - Ruben Kazumov
我正在寻找第一个URL中的报告以及第二个情况下的reports.html。 - Dyvel
2个回答

3

要在任何路径中捕获"reports"或"reports.html",请从最后一个/后开始匹配,并捕获单词字符和.

/.*\/([.\w+]+)/

请看:

查看:https://www.regex101.com/r/iZ7dF3/8


从您的示例中,我只需要第三个捕获组。请原谅我的无知,但我该如何仅获取它? - Dyvel
如果您不需要捕获其余部分,只需删除括号或更改为非捕获组(?:.+)。我将更新答案以仅捕获相关部分。 - Ben Grimm
已更新,可以获取任何路径下的"reports.*"。 - Ben Grimm
嗯...我不太确定 :-D 我使用一个叫做ubot studio的东西 - 它是基于.net构建的 - 我猜测应该是c#。 - Dyvel
我认为这更多与软件有关,而不是正则表达式。它正在“匹配”所有内容,只是忽略了捕获组。我相信你需要提取捕获值的方法在某个地方有记录... - Ben Grimm
显示剩余5条评论

0

尝试:

/([^\/?]+)(?:\?.+)?$/gim

它将起作用并选择:

reports
reports.html

接近了,但我还必须删除?ref_=kdp_BS部分。 - Dyvel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接