【发布时间】:2019-02-08 18:02:25
【问题描述】:
我有一个相对复杂的正则表达式,需要在 Swift 中运行。原来是:
"typedef\W+struct\W+{([^}]*)}\W+(\w+);"
您可以在 JS here 中看到该模式。
为了让它在 Swift 中编译,我将反斜杠转义为:
"typedef\\W+struct\\W+{([^}]*)}\\W+(\\w+);"
在运行时,表达式编译失败,出现2048 错误。我也尝试转义其他字符并尝试escapedPatternForString,但没有运气。是否有将 JS 正则表达式转换为 Swift 的脚本?谢谢!
【问题讨论】:
-
我觉得你需要
"typedef\\W+struct\\W+\\{([^}]*)\\}\\W+(\\w+);" -
你是对的,只转义“{”和“}”更多,不会失败!
-
请注意,
escapedPatternForString在您需要将文字字符串传递到正则表达式模式时非常有用。它不应该用于 regex 模式本身。 -
是的,我是它逃脱了每个特殊字符。谢谢。