На это сообщение поступили жалобы от участников сообщества, поэтому оно временно скрыто.
Разделить строку на подстроки по паттерну
Den
#2
а если делить по первым трем пробелам?
Или текст не однородный?
Или еще лучше, разбивать по :
Den
#4
идея не очень, но вот если в лоб:
let arr = string.components(separatedBy: " ")
а потом, поскольку эта часть вроде повторяется: 01.01.2017, 01:10:10: User1:, то можно все элементы массива после по индексу от 3 и дальше объединить
Но мне конечно самому это решение не нравиться(
haymob
#6
Я бы отлавливал дату, потом имя:
var str = "01.01.2017, 01:10:10: User1: текст сообщения"
let datePattern = "\\d{2}\\.\\d{2}\\.\\d{4},\\s*\\d{2}:\\d{2}:\\d{2}"
let namePattern = ":.+:"
if let range = str.range(of: datePattern, options: .regularExpression) {
let date = str.substring(with: range)
print("Date: \(date)")
str = str.substring(from: range.upperBound)
}
if let range = str.range(of: namePattern, options: .regularExpression) {
let name = str.substring(with: range).replacingOccurrences(of: ":", with: "").trimmingCharacters(in: .whitespaces)
print("Name: \(name)")
str = str.substring(from: range.upperBound).trimmingCharacters(in: .whitespaces)
}
print("Message: \(str)")
ruMaximum
#8
А можете рассказать - где посмотреть информацию о такой магии?
let datePattern = "\\d{2}\\.\\d{2}\\.\\d{4},\\s*\\d{2}:\\d{2}:\\d{2}" let namePattern = ":.+:"
Я понимаю, что два символа, точка, два символа точка и так далее. Но где написано о том как такое создавать? Почему, например, d2, а не “другая_буква2”?
Что такое s* (пробел?)
Почему слэшами это все делится?
Я еще не до конца прочел книгу по swift. Возможно это в каких то финальных главах описывается.