如何获取最后一个' /'之后的所有字符(斜杠)来自url string?
我在为某个网站发出webview请求时,从我的URL方案中收到一个json字符串。例如:
应用:// GA /电子商务/%7B%22product%22:%22playstation4%22 ...}]
我想在最后' /'(斜杠)之后抓取子字符串。
我怎样才能实现它?我可以知道正则表达式的格式是什么吗?
避免使用
.directive('compileTemplate', function($compile, $parse){
return {
link: function(scope, element, attr){
var parsed = $parse(attr.ngBindHtml);
function getStringValue() { return (parsed(scope) || '').toString(); }
//Recompile if the template changes
scope.$watch(getStringValue, function() {
$compile(element, null, -9999)(scope); //The -9999 makes it skip directives so that we do not recompile ourselves
});
}
}
});
因为我的json中可能有转义' /' 。
谢谢。
答案 0 :(得分:10)
对于Swift 3试试这个。
let fileName = "your/file/name/here"
let fileArray = fileName?.components(separatedBy: "/")
let finalFileName = fileArray?.last
输出:"这里"
答案 1 :(得分:2)
您可以在数组中拆分字符串并从数组中获取最后一个对象,如下所示:
NSString *myString = @"app://ga/ecommerce/product:playstation4";
NSArray* spliteArray = [myString componentsSeparatedByString: @"/"];
NSString* lastString = [spliteArray lastObject];
答案 2 :(得分:2)
试试这个:
NSURL *url = [NSURL URLWithString:@"app://ga/ecommerce/%7B%22product%22:%22playstation4%22..."];
NSString *last = [url lastPathComponent];
答案 3 :(得分:1)
创建NSURL并使用NSURL方法,如lastPathComponent或parameterString。这些方法可能是由知道如何处理URL的人编写的。
答案 4 :(得分:0)
你需要的正则表达式是这样的:
((\/){1}([a-z\-]*))$
其中包含1个斜杠,全部为小写字母和连字符。您可以在其中添加更多字符,例如A-Z表示大写字母(等),'$'表示从字符串末尾匹配它,
答案 5 :(得分:0)
好吧,似乎使用Regex在shouldStartLoadWithRequest委托中非常昂贵,特别是如果您拥有具有大量网络浏览量的混合应用程序。 webview中的一些网站可能有多个请求,有些是在后台运行。如果webview在每次webview加载请求时都触发正则表达式代码,那就太痛苦了。
而且,我已经逃脱了' /'在我的最后一个组件params(json string)中,它可能导致lastComponent在转义后的' /'字符。
因此,我坚持使用if-else语句进行代码过滤,并将字符串与URL的组件进行比较。例如
request.URL.absoluteString
request.URL.host
request.URL.fragment
并且还发现@Nitin Gohel很有用。