查找与URL片段的第一部分匹配的正则表达式
Looking for regular expression that matches the first part of a URL fragment
我有一个类似"users/123/edit"的URL片段,我想匹配字符串的第一部分(在本例中为"users"(。URL片段也可以只是"users",并且还应该匹配"users(用户("。
我可以通过JSfind((和substr((实现,但我想看看如何通过正则表达式来实现。对解决方案的解释也很好。
Regex:/([a-z0-9]+)('/[a-z0-9]+)*/i
匹配:
-
users/123/edit
-
users
-
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
相关文章:
- 如何获取在Javascript正则表达式中用正斜杠分隔的字符串的一部分
- 如何仅替换以下正则表达式(JavaScript)的一部分
- 使用正则表达式替换字符串的一部分
- 如何在正则表达式中否定类的一部分
- 为什么在 javascript 中将正面回溯捕获为正则表达式匹配的一部分
- 拆分忽略正则表达式的一部分
- 如何使用正则表达式或 jQuery 检索 URL 的最后一部分
- 使用正则表达式拉出字符串的一部分
- 为什么我的正则表达式捕获组只在匹配多个部分时捕获字符串的最后一部分
- 如何仅对字符串的一部分应用正则表达式
- 在 Javascript 中使用正则表达式替换 html 字符串的一部分
- 如果字符串是编号列表的一部分,正则表达式将检测到什么
- 使用正则表达式或javascript提取ID的最后一部分
- 用Javascript正则表达式将字符串的一部分与列表中的项相匹配
- 用什么正则表达式来确定<或比;是HTML标记的一部分
- 正则表达式以避免替换html标记的一部分
- 正则表达式查找模式并只替换其中的一部分
- 如何返回匹配正则表达式的javascript字符串的一部分
- 正则表达式匹配字符串的最后一部分
- 使 JavaScript 正则表达式的一部分可选