我正在尝试匹配两个字符,特别是网址的最后一部分,但仅限于最后一个斜杠(/
)和哈希(#
)之间。
http://example.com/path/to/thing#name
比赛应该返回
thing
我现在部分在那里。我可以获取url的最后一部分的整个字符串,或哈希(#
)之前的所有内容,但不能同时获取两者。
/([^\/]*?.*(?=#))/
请参阅我的regex101进行测试。
答案 0 :(得分:2)
你很亲密,但仍然在思考它。这就足够了:
/[^\/#]+(?=#|$)/
- 一系列非 - /
或#
个字符,其中下一个字符应为#
。您不需要添加括号以将其匹配为单独的组,匹配本身是正确的。最后的预测(?=#|$)
会使其停留在干预的#
或网址的末尾。
请参阅regex101。