当前位置: 首页 > 知识库问答 >
问题:

定义匹配以数字结尾的URL的正则表达式,除非后面有其他内容

孙辰阳
2023-03-14

同时禁止像这样的URL

https://discuss.dwolla.com/t/the-dwolla-reflector-is-now-open-source/1352/12

换句话说,我希望URL以数字结尾(例如,abpve示例中的/1352),除非这些数字后面有后面的内容(例如,上面示例中的/12)

我绝不是正则表达式的专家,我只能想出\/(\d+)$,甚至是这个^https:\/\/discuss.dwolla.com\/t\/\s*\/(\d+)$,但都无法排除不需要的URL,因为它们都捕获地址中的最后几个数字。

---更新---

很抱歉一开始就没说清楚。这样做是为了说明URL的数字可以改变,所以/1352不是固定的。同样,另一个要接受的URL示例还有:

https://discuss.dwolla.com/t/updated-java-android-helper-library-for-dwollas-api/108

共有1个答案

端木飞
2023-03-14

这可能是最简单的方法:

[^\/\d][^\/]*\/\d+$

或限制到特定域:

^https?:\/\/discuss.dwolla.com\/.*[^\/\d][^\/]*\/\d+$

看现场演示。

 类似资料:
  • 如何使用regex匹配任何单词而不显示指定的单词 我想去掉“你”这个词 我有一些词例如: 所以,这个项目的结果是:

  • 问题内容: 我正在寻找一个正则表达式,它将匹配以一个子字符串开头但不以某个子字符串结尾的字符串。 例: 应该匹配以“ foo”开头但不以“ bar”结尾的任何内容。我知道[^ …]语法,但是找不到任何可以对字符串而不是单个字符执行此操作的东西。 我专门尝试针对Java的正则表达式执行此操作,但是我之前曾遇到过此问题,因此其他正则表达式引擎的答案也将非常有用。 感谢@Kibbee验证它也可以在C#中

  • 问题内容: 给定以下内容: 我想捕捉: 什么Java正则表达式可以让我做到这一点? 我已经尝试过了,它对于“约翰·史密斯(123)”和“约翰·史密斯(123)(456)”都适用,但是对“约翰·史密斯”却不起作用。如何更改正则表达式以使其也可用于第一个输入? 问题答案: 您可以将第一个懒惰的人变成懒惰的人,然后用一个非捕获的可选组来包裹后面的部分: 参见正则表达式演示 实际上,如果将正则表达式与最后

  • 问题内容: 我实现了如下所示的Pattern类:http : //www.java2s.com/Code/Java/GWT/ImplementjavautilregexPatternwithJavascriptRegExpobject.htm 我想使用以下正则表达式来匹配我的String中的网址: 不幸的是,Java编译器当然无法解析该字符串,因为它不使用有效的转义序列(因为从技术上讲,以上是Ja

  • 问题内容: 在使用正则表达式时,我使用RegexBuddy。我从其库中复制了正则表达式以匹配URL。我在RegexBuddy中成功测试。但是,当我将其复制为Java 样式并将其粘贴到Java代码中时,它将无法正常工作。以下类打印: 有人知道我在做什么错吗? 问题答案: 请尝试以下正则表达式字符串。你的测试可能以区分大小写的方式进行。我添加了小写字母Alpha以及正确的字符串开头占位符。 这也适用:

  • 除非x后面跟了另一个x,否则我怎样才能在右边匹配任意数量的空白呢? 到目前为止,我有: 但显然,即使文本是“xx”,这仍然会捕获。我如何让这个捕获“xaldkfjda”、“x”、“x adkf”等,但不是“xxaldkfjdlk”、“xx”等中的第一个x? 编辑:最后一句的结尾应该是“…但不是前两个x在:‘xxaldkfjdlk’,‘xx’等?”简而言之,我想抓住一个“x”,但从来没有两个“x”并