首页 > 解决方案 > 用于传递 URL 和失败 CIDR 掩码的正则表达式

问题描述

我有可以是 URL 或 CIDR 块的字符串。我想确定一个字符串是否是 URL 的路径,例如:

/9this can be/a/path123
/test
/r

或 CIDR 掩码(/0/32):

/24
/12
/32

我希望正则表达式从匹配项中排除 CIDR 掩码。

这是我到目前为止所拥有的:

^[/?]((?!([0-9]|[1-2][0-9]|3[0-2]))(?=[\S]))[\S ]*$

哪个有效,除了 URL 路径以数字开头的情况:

/23example

如果这很重要,我正在使用 Go 进行编码。

标签: regexgoregex-lookaroundsregex-groupregex-greedy

解决方案


也许这就足够了:

^[\/?].*[a-zA-Z].*$

https://regex101.com/r/dw6Dtw/1

它所做的只是确保路径中有一个字母


推荐阅读