类似 Steam 的 URL 的正则表达式

Regex for steam-like urls

我不知道如何构建正则表达式来满足我的需求。我无法理解这种黑暗艺术,所以我需要你的帮助来解决我的问题。

我想使用正则表达式模式在字符串中找到 url。如何在字符串中找到这种类型 urls?

Lorem ipsum foo://bar1234 dolor sit amet.

它应该从 foo:// 获取字符串,直到遇到空格。 bar1234 部分是完全随机的,它可以包含数字、字母或特殊字符,所以我在这里不需要任何规则。我该怎么做?

我从某种模式创建器应用程序和 https 示例构建了一个 pattenr,但它似乎不起作用。 ^(foo?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$

为什么不保持简单并使用:

/\bfoo:\/\/\S+/g

Check RegEx Demo

这意味着首先使用单词边界匹配文字 foo://,然后匹配 \S+(1 个或多个非 space 字符)。

foo:\/\/(\S+)

如果格式如您所说的那样简单,这应该可以满足您的要求。

要测试此类内容,您始终可以使用像 https://regex101.com/ 这样的网站,这会让您的测试更容易。

如果你想从 foo 开始:

foo:\/\/([^\s]+)

如果您还想在正则表达式中保留 foo:

(foo:\/\/[^\s]+)