删除Swift中字符串开头的所有换行符

Chr*_*ian 22 string swift

我有一个像这样的字符串:

"

BLA
Blub"
Run Code Online (Sandbox Code Playgroud)

现在我想删除所有领先的换行符.(但只有那些直到第一个"真实的单词"出现.这怎么可能?

谢谢

Mar*_*n R 55

如果可以接受从字符串两端删除换行符(和其他空格),则可以使用

let string = "\n\nBLA\nblub"
let trimmed = string.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())
// In Swift 1.2 (Xcode 6.3):
let trimmed = (string as NSString).stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())
Run Code Online (Sandbox Code Playgroud)

要删除前导换行符/空白字符,您可以(例如)使用正则表达式搜索并替换:

let trimmed = string.stringByReplacingOccurrencesOfString("^\\s*",
    withString: "", options: .RegularExpressionSearch)
Run Code Online (Sandbox Code Playgroud)

"^\\s*"匹配字符串开头的所有空格.用于"^\\n*"仅匹配换行符.

更新Swift 3(Xcode 8):

let trimmed = string.replacingOccurrences(of: "^\\s*", with: "", options: .regularExpression)
Run Code Online (Sandbox Code Playgroud)

  • Swift 3语法:`string.replacingOccurrences(of:"^ \\ s*",with:"",options:.regularExpression,range:nil)` (5认同)
  • Swift 4:`.trimmingCharacters(in:.whitespacesAndNewlines)` (3认同)

Jig*_*iya 9

你可以使用extensionTrim

防爆.

let string = "\n\nBLA\nblub"
let trimmed = string.trim()

extension String {
    func trim() -> String {
          return self.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines)
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 这还将修剪尾随换行符以及前导和尾随空格。 (2认同)