swift - 是否有转义所有与正则表达式相关的字符的功能?

标签 swift regex nsregularexpression

我在我的应用程序中使用的正则表达式是用户输入和代码的组合。因为我不想限制用户,所以我想从条目中转义所有与正则表达式相关的字符,如“+”、方括号、斜杠等。 是否有一个函数或至少有一种简单的方法来将所有这些字符放入一个数组中,以便我可以做这样的事情:

for regexChar in regexCharacterArray{
    myCombinedRegex = myCombinedRegex.replaceOccurences(of: regexChar, with: "\\" + regexChar)
}

最佳答案

是的,有NSRegularExpression.escapedPattern(for:) :

Returns a string by adding backslash escapes as necessary to protect any characters that would match as pattern metacharacters.

例子:

let escaped = NSRegularExpression.escapedPattern(for: "[*]+")
print(escaped) // \[\*]\+

关于swift - 是否有转义所有与正则表达式相关的字符的功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49516751/

相关文章:

python - 替换 %variables% 的正则表达式

python - 将字符串拆分为字母和标点符号,正则表达式除外

ios - 在 iOS 中检查整数或小数的正则表达式

ios - 无法匹配整个正则表达式

ios - 类型 'ProfilesTableViewController' 不符合 Xcode 6 GM 种子中的协议(protocol) 'UITableViewDataSource'

json - 在 Swift 4 中将嵌套的 JSON 转换为数据对象

regex - 当字符串与正则表达式匹配时,幕后发生了什么?

ios - 如何进行高亮匹配(NSRegularExpression)?

ios - 文本字段和日期选择器更改值

swift - 在 Swift 中建模部分加载的相关对象