dev*_*hts 6 regex regex-lookarounds
我正在尝试做一个积极的预测,以匹配给定URL中的对象ID,无论该对象ID在URL中的何处.想要匹配,直到字符串的'/'或结尾.以下是一些示例字符串(粗体是我想要匹配的ID):
使用这个:objects/obj _(.+?)(?= /)匹配后两个,因为它们都有一个尾部斜杠.我读到前瞻支持正则表达式作为匹配字符,所以我尝试了这个对象/ obj _(.+?)(?=(/ | $))无济于事.有什么想法吗?
此正则表达式匹配 EOF 或某个字符(即 /)。
(?<=\/objects\/obj_)(.+?)(?=\/|$)
Run Code Online (Sandbox Code Playgroud)
这是一个演示。
您不需要使用积极的前瞻:
/objects/([^/]+).*
Run Code Online (Sandbox Code Playgroud)
然后,第一组将保存您的 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'
Run Code Online (Sandbox Code Playgroud)