Regex 提取斜杠之间的字符串,但第二个斜杠可能不存在
我试图找出如何从表单中捕获的URL中提取用户名。我有下面的正则表达式,但问题是第二个正斜杠可能不存在。以下是一些例子: 示例URLRegex 提取斜杠之间的字符串,但第二个斜杠可能不存在,regex,Regex,我试图找出如何从表单中捕获的URL中提取用户名。我有下面的正则表达式,但问题是第二个正斜杠可能不存在。以下是一些例子: 示例URL https://test.site.com/u/username https://test.site.com/u/username/pref/summary 我正在尝试提取用户名 当前正则表达式 /u/(.*)/ 我上面提到的当前一个成功地提取了用户名,但是仅当用户名后有另一个/时才有效。第二个/需要是可选的;它可能在那里,也可能不在那里,在那之后可能也可能不会有更
https://test.site.com/u/username
https://test.site.com/u/username/pref/summary
我正在尝试提取用户名
当前正则表达式/u/(.*)/
我上面提到的当前一个成功地提取了用户名
,但是仅当用户名后有另一个/
时才有效。第二个/
需要是可选的;它可能在那里,也可能不在那里,在那之后可能也可能不会有更多
我只是找不到使第二个/
可选的正确正则表达式(在末尾使用?
没有帮助),但如果这有意义的话,就不完全是“可选的”
提前谢谢 /u/([^/]*)
将在/u/
之后匹配尽可能多的非/
字符
它将与pref
和summary
不匹配,
因为[^/]
匹配除/
以外的任何字符,
所以[^/]*
匹配一个字符串(尽可能长)
除/
以外的其他字符
考虑:如果您的模式是B[aeiou]*
你的输入是《甲虫》(或《贝多芬》),
它将只匹配Bee,
在不是元音的第一个字符前停止
类似地,
[^/]*
在第一次出现/
之前停止,将其更改为/u/([^/]*)
谢谢-确实如此,但我不明白!这是如何不捕获超过其他正向斜杠的字符串的,比如我的示例中的“pref”和“summary”?谢谢您的解释!现在说得通了!干杯