Swift 2.xで「AB」で始まり「ZX」で終わる文字列を検索して置換するにはどうすればよいですか?Swiftの文字列の開始と終了の文字列を検索し置換する正規表現
編集:私はABとZXの文字列を維持したいと思います。例えば
first situation: AB_asdad_ZX
second situation: _asdad_
(私は空の文字列( "" で置き換えたい)が、ABとZXの間で維持)
Swift 2.xで「AB」で始まり「ZX」で終わる文字列を検索して置換するにはどうすればよいですか?Swiftの文字列の開始と終了の文字列を検索し置換する正規表現
編集:私は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"
私はABとZXの間を行きたい。あなたの例では、_WHATEVER_ZX文字列を保持したいと思います。私はちょうど空の文字列( "")とABの間の文字列ABを置き換えるが、ABとZXの間に保つこと – mathema
それは簡単に範囲startIndex.successor()を使用してください後継() –
@ mathema私の編集を確認 –
は何のためにこの作業を行いますあなたが必要ですか?
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"]
文字列全体、両端、中央、または別のものを置き換えますか?非正規表現の解決法もあなたのために働くでしょうか?文字列が配列の中、テキストの真ん中、または他の場所ですか? – ColGraff
何を試しましたか?私は、 "アンカーされた"正規表現とキャプチャグループをオンラインで検索することをお勧めします。それを理解するために少しの研究が必要です。 –
@KennethBruno実際、私は特定の配列のすべての文字列を変更したいと思います。正規表現の有無にかかわらず、解決法。どちらが速いか。 – mathema