我正在浏览stackoverflow并注意到一个正则表达式,用于匹配最后一个斜杠后的所有内容
([^/]+$)
Run Code Online (Sandbox Code Playgroud)
例如,如果您有http://www.blah.com/blah/test ,则reg表达式将提取"test"而不带单引号.
我的问题是它为什么这样做?不是^ /意味着斜线的开头?
编辑:我想我不明白+ $抓取"测试".+重复上一个项目一次或多次,以便忽略所有/斜杠之间的所有数据.然后$如何提取测试
Dmi*_*nko 31
不,^
内部[]
意味着否定.
[/]
代表'集合中的任何字符[/]'.
[^/]
代表'任何不在集合中的字符[/]'.
Beh*_*zad 19
在原始问题中,只backslash
需要一个before slash
,在这种情况下,正则表达式将进入everything after last slash
字符串
([^\/]+$)
Run Code Online (Sandbox Code Playgroud)
小智 5
仅供参考,对于非正则表达式版本,根据您使用的语言,您可以使用 substring 和 lastIndexOf 方法的组合。只需找到“/”字符的最后一个索引,并获取紧跟其后的子字符串。
即,在 Java 中
String targetString = "a/string/with/slashes/in/it";
int lastSlashIndex = targetString.lastIndexOf('/');
String everythingAfterTheFinalSlash = targetString.substring(lastSlashIndex + 1);
Run Code Online (Sandbox Code Playgroud)