Быстрая перехват строки предыдущего абзаца символа - PullRequest
0 голосов
/ 09 мая 2019

Как перехватить строку перед - и :

let str = "fist:hello-world";

Я хочу fist Строка

Если я нахожусь в Javascript, я найду первый встреченный символ, получу его индекс и перехвату, но что мне делать в swift?

Я попробовал немного apis, но нет, вы можете мне помочь?

Ответы [ 3 ]

0 голосов
/ 09 мая 2019

@ soufian-hossiam очень близко, но если вы хотите использовать несколько «разделенных символов», как вы предлагаете в своем комментарии к его ответу, вы можете использовать пользовательский CharacterSet

А затем разбить строку на массив следующим образом:

let splitCharacters = CharacterSet([":", "-"])
let testString = "Hello:wor-ld"
let components = testString.components(separatedBy: splitCharacters)

Теперь testString разбивается на части в массиве components, и вы можете использовать этот массив длядобраться до отдельных частей.

Например,

for component in components {
    print(component)
}

возвращает:

Hello

wor

ld

Надеюсь, это поможет.

0 голосов
/ 09 мая 2019

Чтобы получить что-либо перед ':' или '-', вы можете использовать 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))
}

Выход

привет
привет, больше
привет, больше вещей

0 голосов
/ 09 мая 2019
let str = "hello:worl-d"
let components = str.components(separatedBy: CharacterSet(charactersIn: ":-"))
let result = components[0] // result = "hello"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...