用于传递 URL 和失败 CIDR 掩码的正则表达式

标签 regex go regex-lookarounds regex-group regex-greedy

我有可以是 URL 或 CIDR block 的字符串。我想确定一个字符串是否是一个 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 编写代码。

最佳答案

也许这就足够了:

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

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

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

关于用于传递 URL 和失败 CIDR 掩码的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56241737/

相关文章:

python - 分割文本但在第一个分割部分中包含模式

go - exec: 在 $PATH 中找不到可执行文件

python - 当存在重叠索引时,使用 re.findall 提取正则表达式匹配周围的单词

python - 用于排除目录、捕获以逗号分隔的文件名、排除 "(number)"和扩展名的正则表达式

Java 正则表达式 : Word Boundary Matcher in a String Literal

javascript - 使用javascript正则表达式从字符串中提取子字符串

javascript - 正则表达式并不匹配所有情况

go - gorilla/mux 中的 PathPrefix() 和 Handle(pathString, ...) 有什么区别?

json - 使用 Gorilla RPC 在 Go 中批量处理 JSON-RPC

regex - 在文本编辑器中仅用正则表达式替换第一次出现的单词