2

これを印刷すると:

print("dfi:.*\\{8766370\\}.*:6582.*")

ログの結果は期待どおりに見えます。

>>>> dfi:.*\{8766370\}.*:6582.*

しかし、文字列を動的に構築すると、結果が間違っているように見えます

let re = "dfi:.*" + "\\" + "{" + "\(section)" + "\\" + "}" + ".*:\(feed).*"
print(re)

>>>> dfi:.*\\{8766370\\}.*:6582.*"

2 番目のケース "\" に二重スラッシュがあることに注意してください。その理由はわかりません。シングルスラッシュまたはトリプルスラッシュを使用してみましたが、それでも間違って出力されます。

編集 - コードの追加:

for (section,feeds) in toPurge {
  var regex = [String]()
  for feed in feeds {
    // dfi:\{(8767514|8769411|8768176)\}.*
    let re = "dfi:.*" + "\\" + "{" + "\(section)" + "\\" + "}" + ".*:\(feed).*"
    regex.append(re)
  }
  print(regex) // looks wrong ! bug in xcode?
  for r in regex {
    print(r) // looks perfect
  }
}
4

1 に答える 1