查找与URL片段的第一部分匹配的正则表达式

Looking for regular expression that matches the first part of a URL fragment

本文关键字:正则表达式 一部分 第一部 URL 片段 查找      更新时间:2023-09-26

我有一个类似"users/123/edit"的URL片段,我想匹配字符串的第一部分(在本例中为"users"(。URL片段也可以只是"users",并且还应该匹配"users(用户("。

我可以通过JSfind((substr((实现,但我想看看如何通过正则表达式来实现。对解决方案的解释也很好。

Regex:/([a-z0-9]+)('/[a-z0-9]+)*/i

匹配:

  1. users/123/edit

  2. users

  3. myuser123//如果不需要,则告知

解释:

([a-z0-9]+)捕获[a-z0-9]的一个或多个出现(+(并捕获它

('/[a-z0-9]+)*捕获/的零次或多次出现(*(,然后是[a-z0-9],并捕获最后一次出现。

i gnore大小写标志使整个匹配不区分大小写。

DEMO

使用正则表达式:

str.match(/[^'/]*/i)[0]

这匹配所有不同于(之前("/"的字符

FIDDLE

您可以使用split('/')[0]:

s = 'users/123/edit'.split('/')[0];
// users

否则:

s = 'users'.split('/')[0];
// users