python - 用于匹配特定 URL 的正则表达式

标签 python regex regex-lookarounds regex-group regex-greedy

我正在尝试用 python 编写一个正则表达式,它将匹配一个 URL(例如 https://www.foo.com/)或一个以“sc-domain:”开头但没有 https 或路径的域。

例如,下面的条目应该通过

https://www.foo.com/
https://www.foo.com/bar/
sc-domain:www.foo.com

但是下面的条目应该会失败

htps://www.foo.com/
https:/www.foo.com/bar/
sc-domain:www.foo.com/
sc-domain:www.foo.com/bar
scdomain:www.foo.com

现在我正在处理以下内容:

^(https://*/|sc-domain:^[^/]*$)

这几乎可以工作,但仍然允许像 sc-domain:www.foo.com/这样的提交通过。具体来说,^[^/]*$ 部分没有捕捉到“/”不应通过。

最佳答案

^((?:https://\S+)|(?:sc-domain:[^/\s]+))$

你可以试试这个。

查看演示。

https://regex101.com/r/xXSayK/2

关于python - 用于匹配特定 URL 的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56083285/

相关文章:

php - 正则表达式中括号的用途

.net - 只有数字,数字可能是十进制(正则表达式)

java - 任意顺序的多个组的正则表达式,每个组有一个多重性

正则表达式前瞻

python - 如何将 lambda 函数读取为字符串?

python - 填充前向条件结果

python - 具有多个变量的列表理解

python - 在处理其他字段时将文件上传到 blob 存储

python - 如何在文件中搜索以某种格式的数字开头的所有文本行并将它们移动到新行

javascript - 使用正则表达式替换行中的 N 个字符串,其中 N 个字符串在行中可以具有任意顺序