【发布时间】:2016-07-09 05:55:35
【问题描述】:
我在 Swift 3.0 中创建了一个生成 RegularExpression 的函数。我已经接近我想要的了,但是 反斜杠 给我带来了很多麻烦。
我查看了Swift Documentation,我认为将“\”更改为\u{005C} 或u{005C} 可以解决问题,但事实并非如此。
这是我提供正则表达式生成函数的数组:
var letterArray = ["a","","a","","","","","","",""]
这是我方法的相关部分:
var outputString = String()
// getMinimumWordLength returns 3
let minimumWordLength = getMinimumWordLength(letterArray: letterArray)
// for the array above, maximumWordLength returns 10
let maximumWordLength = letterArray.count
var index = 0
for letter in letterArray {
if index < minimumWordLength {
if letter as! String != "" {
outputString = outputString + letter.lowercased
} else {
// this puts an extra \ in my regex
outputString = outputString + "\\w" // first \ is an escape character, 2nd one gets read
// this puts an extra backslash in, too
// outputString = outputString + "\u{005C}w"
}
}
index += 1
}
outputString = outputString + ("{\(minimumWordLength),\(maximumWordLength)}$/")
return outputString
我想要的输出是:
a\wa{3,10}$/
我的实际输出是:
a\\wa{3,10}$/
如果有人对我的错误提出建议,我欢迎他们。感谢您的阅读。
【问题讨论】:
-
我不知道您要做什么,但您的代码提供了所需的输出。我唯一做的是在
lowercased之后添加圆括号:outputString = outputString + letter.lowercased() -
添加
print(outputString)看看你会得到什么。 (我需要 Code Different 所示的修复程序。)
标签: ios regex xcode swift swift3