Open1
Swift: Regexの書き方でいつも迷うのでメモ
Swiftでの正規表現です。
正規表現自体は良いのですが、マッチさせた後の書き方をいつも迷うのでメモ。
Perlで言うと以下のような奴です。
if ($text =~ /^([^:]+):/) {
print "match: $1\n";
}
これをSwiftでどう書くのか(マッチの取り方)、毎回忘れます。
if let match = text.firstMatch(of: /^([^:]+):/) {
print("match: \(match.1)")
}
こんな感じですね。
match.0
がマッチ全体(/〜/のマッチ分。この例では:まで含む分。Perlだと$&
)を表し、match.1
, match.2
...が()のマッチを表します。
ただ、match.0
とかmatch.1
の型はString
ではなくてSubstring
なんですよね。
String
にするなら、String(match.1)
とする必要があります。
ちょっと面倒。