获取斜杠之间或URL末尾的数字

时间:2018-06-04 08:30:58

标签: regex url groovy

我需要一个reg表达式(用于groovy)来匹配2个斜杠(在url中)或url末尾之间的7位数。所以fe:

https://stackoverflow.com/questions/6032324/problem-with-this-reg-expression

我需要6032324,但它也应该匹配:

https://stackoverflow.com/questions/6032324

如果它有更多/更少的1位数,我不应该匹配。 也许这是一个简单的注册表,但我不太熟悉这个:)

谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

由于您正在解析URL,因此使用URL解析器首先抓取path部分以与/分开是有意义的。然后,您可以直接访问斜杠分隔的路径部分,您可以使用非常简单的[0-9]{7}模式进行测试,并使用

def results = new URL(surl).path.split("/").findAll { it.matches(/\d{7}/) }

您也可以参加第一场比赛:

def results = new URL(surl).path.split("/").findAll { it.matches(/\d{7}/) }.first()

或者说:

def results = new URL(surl).path.split("/").findAll { it.matches(/\d{7}/) }.last()

请参阅Groovy demo

def surl = "https://stackoverflow.com/questions/6032324/problem-with-this-reg-expression"
def url = new URL(surl)
final result = url.path.split("/").findAll { it.matches(/\d{7}/) }.first()
print(result) // => 6032324