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

时间:2019-05-21 15:33:23

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

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

/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编码。

2 个答案:

答案 0 :(得分:0)

也许这足够了:

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

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

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

答案 1 :(得分:0)

我怀疑您可能想要一个复杂的表达式来传递这些表达式,也许只是添加一个带有2加alpha的量词会通过该表达式。也许与此类似的表达式就足够了:

(.+?[a-z]{2,}[0-9]?.+)

enter image description here

DEMO

RegEx

如果不希望使用此表达式或我的假设不正确,则可以在regex101.com中对其进行修改或更改。

RegEx电路

jex.im还有助于可视化表达式。

enter image description here