Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在Swift中正确使用NSRegular表达式和筛选字符串数组_Ios_Arrays_Swift_Regex_String - Fatal编程技术网

Ios 如何在Swift中正确使用NSRegular表达式和筛选字符串数组

Ios 如何在Swift中正确使用NSRegular表达式和筛选字符串数组,ios,arrays,swift,regex,string,Ios,Arrays,Swift,Regex,String,这是我的问题,我有一个字符串数组,其中包含一组 国家: 让myCountryStart=[“非洲/ABC”、“美国/BBC”、“亚洲/CBC”、“太平洋/CBA”、“欧洲/CBB”、“印度/CAB”] 是否有任何解决方案可以删除以下特定词语 “非洲”、“美洲”、“亚洲”等,。 让输出结果如下所示: 让myCountryEnd=[“ABC”、“BBC”、“CBC”、“CBA”、“CBB”、“CAB”] 这是我现在的代码 我知道这是一个愚蠢的解决方案。因此,我更喜欢使用规则表达式。但是我遇到了一个问

这是我的问题,我有一个字符串数组,其中包含一组 国家:

让myCountryStart=[“非洲/ABC”、“美国/BBC”、“亚洲/CBC”、“太平洋/CBA”、“欧洲/CBB”、“印度/CAB”]

是否有任何解决方案可以删除以下特定词语 “非洲”、“美洲”、“亚洲”等,。 让输出结果如下所示:

让myCountryEnd=[“ABC”、“BBC”、“CBC”、“CBA”、“CBB”、“CAB”]

这是我现在的代码

我知道这是一个愚蠢的解决方案。因此,我更喜欢使用规则表达式。但是我遇到了一个问题 关于字符串和字符串数组问题

因此,我得到了一个关于我不能在字符串上使用此方法的警告 数组。我该怎么做才能修好它

如有任何建议或帮助,将不胜感激。感谢一位敏捷的新手


您可以使用类似于
*/
^[^/]*/
的正则表达式使用
.map
.replacingOccurrences

let myCountryStart = ["Africa/ABC", "America/BBC", "Asia/CBC", "Pacific/CBA", "Europe/CBB", "Indian/CAB"]
let myCountryEnd = myCountryStart.map{ $0.replacingOccurrences(of: ".*/", with: "", options: [.caseInsensitive,.regularExpression]) }
print(myCountryEnd)
// => ["ABC", "BBC", "CBC", "CBA", "CBB", "CAB"]
*/
模式将尽可能多地匹配除换行符以外的任何0个或更多字符,直到最后一个
/

^[^/]*/
模式将匹配从字符串开始到第一个
/
的任何字符,而不是
/


注意:您不需要
.case不区分大小写
选项,我保留它是为了显示如何在
选项
参数中组合多个选项。

myCountryStart
似乎只有一个元素。这是真的吗?在您的旧代码中,
outputStr
是什么?为什么不在新代码中使用它,而不是
myCountryStart
?它应该是字符串数组的六个元素。我忘了修改它了。@Sweeper感谢您通知我那个旧代码错误。不过您在编辑时并没有将它更改为6个元素。。。
let target = myCountryStart
let regex = "/"
let RE = try? NSRegularExpression(pattern: "regex", options: .caseInsensitive)
let modified = RE?.stringByReplacingMatches(in: target, options: .reportProgress, range: nil, withTemplate: "") {
    return modified
}
let myCountryEnd = modified
let myCountryStart = ["Africa/ABC", "America/BBC", "Asia/CBC", "Pacific/CBA", "Europe/CBB", "Indian/CAB"]
let myCountryEnd = myCountryStart.map{ $0.replacingOccurrences(of: ".*/", with: "", options: [.caseInsensitive,.regularExpression]) }
print(myCountryEnd)
// => ["ABC", "BBC", "CBC", "CBA", "CBB", "CAB"]