我需要一个reg表达式(用于groovy)来匹配2个斜杠(在url中)或url末尾之间的7位数。所以fe:
https://stackoverflow.com/questions/6032324/problem-with-this-reg-expression
我需要6032324,但它也应该匹配:
https://stackoverflow.com/questions/6032324
如果它有更多/更少的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