如何截获-
和:
之前的字符串
let str = "fist:hello-world";
我要fist
字符串
如果我使用Javascript,我将找到遇到的第一个字符并获取其下标并将其截取,但是我该如何迅速处理?
我尝试了一些api,但是没有,您能帮我吗?
答案 0 :(得分:0)
let str = "hello:worl-d"
let components = str.components(separatedBy: CharacterSet(charactersIn: ":-"))
let result = components[0] // result = "hello"
答案 1 :(得分:0)
@ soufian-hossiam非常接近,但是如果您想使用多个“分字符”,如您在对他的回答的评论中建议的那样,则可以使用自定义CharacterSet
>
然后将String拆分成一个数组,如下所示:
let splitCharacters = CharacterSet([":", "-"])
let testString = "Hello:wor-ld"
let components = testString.components(separatedBy: splitCharacters)
现在,testString
在components
数组中被分割为多个部分,然后您可以使用该数组来获取各个部分。
例如
for component in components {
print(component)
}
返回:
你好
糟糕
ld
希望有帮助。
答案 2 :(得分:0)
要获取':'或'-'之前的任何内容,可以将prefix
与firstIndex
组合使用
let firstPart = input.prefix(upTo:input.firstIndex { $0 == ":" || $0 == "-"} ?? input.endIndex)
示例
let examples = ["hello:more stuff", "hello, more-stuff", "hello, more stuff"]
for input in examples {
print(input.prefix(upTo:input.firstIndex { $0 == ":" || $0 == "-"} ?? input.endIndex))
}
输出
你好
你好,更多
你好,更多的东西