繁体   English   中英

正则表达式在 Swift 中查找和替换字符串的开始和结束文本

[英]Regex to find and replace string starting and ending text in Swift

如何在 Swift 2.x 中查找和替换以(例如)“AB”开头并以“ZX”结尾的字符串?

编辑:我想保持在 AB 和 ZX 字符串之间。 例如

first situation: AB_asdad_ZX 
second situation: _asdad_

(我想用空字符串(“”)替换但保持在 AB 和 ZX 之间)

你可以这样做: "\\\\bAB\\\\w+ZX\\\\b"

var strings = ["AB_any_ZX","AB_whatever_ZX","HELLO"]

for (index, str) in strings.enumerate() {
    if let range = str.rangeOfString("\\bAB\\w+ZX\\b", options: .RegularExpressionSearch) {
        strings[index] = str.substringWithRange(range.startIndex.successor().successor()..<range.endIndex.predecessor().predecessor())

    }
}

print(strings)  // "["_any_", "_whatever_", "HELLO"]\n"

这是否适合您的需要?

import Foundation

var strings = ["AB111ZX","CD123EF","AB222ZX","A123ZX","AB123X","AB123","123ZX"]

strings = strings.flatMap {
  guard $0.hasPrefix("AB") && $0.hasSuffix("ZX") else { return nil }
  return $0.stringByTrimmingCharactersInSet(NSCharacterSet(charactersInString: "ABZX"))
}

print(strings)

// ["111","222"]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM