我正在尝试做一个积极的预测以匹配给定URL中的对象ID,无论该对象ID在URL中的何处。想要匹配,直到字符串的'/'或结尾。以下是一些示例字符串(粗体是我想要匹配的ID):
使用这个:objects / obj _(。+?)(?= /)匹配后两个,因为它们都有一个尾部斜杠。我读到前瞻支持正则表达式作为匹配字符,所以我尝试了这个对象/ obj _(。+?)(?=(/ | $))无济于事。有什么想法吗?
答案 0 :(得分:7)
试试这个:
/objects/(.*?)(/|$)
它只是在/objects/
与斜线或eof之间进行非贪婪的匹配
答案 1 :(得分:2)
您不需要使用积极的前瞻:
/objects/([^/]+).*
然后,第一组将保留您的id值。
这是Python中的一个例子:
>>> import re
>>> p = re.compile('/objects/([^/]+).*')
>>> p.match("/objects/obj_asd-1234-special").group(1)
'obj_asd-1234-special'
>>> p.match("/objects/obj_xyz-15434/members").group(1)
'obj_xyz-15434'
>>> p.match("/objects/obj_aasdfaeastd-15d44/other/asdf").group(1)
'obj_aasdfaeastd-15d44'
答案 2 :(得分:1)