快速的正则表达式。特定数字格式的模板

时间:2014-10-06 19:36:01

标签: regex string parsing swift

我是swift的新手,我一直在使用它只有几个星期,现在我正在尝试解析类似于来自传入字符串的价目表。它有下一种格式: 2.99 X 3.00 = 10 A. 这里有一些文字 1.22 X 1.5 10 A

最困难的部分是有时A或某个数字缺失但X应该在这个地方。 我想知道如何在swift中使用正则表达式(或类似的东西,如果它不存在)来编写一个模板来解析下一个值 d.dd X d.d SomeValueIfExists

我非常感谢任何有用的信息,要阅读的主题或任何其他资源,以获得有关swift的更多知识。

PS。我可以访问开发。论坛,但我以前从未使用过它们。

1 个答案:

答案 0 :(得分:1)

我做了一个最近的例子,并且可能有点困难,以证明在Swift中使用RegEx:

let str1: NSString = "I run 12 miles"
let str2 = "I run 12 miles"

let match = str1.rangeOfString("\\d+", options: .RegularExpressionSearch)
let finalStr = str1.substringWithRange(match).toInt()
let n: Double = 2.2*Double(finalStr!)

let newStr = str2.stringByReplacingOccurrencesOfString("\\d+", withString: "\(n)", options: NSStringCompareOptions.RegularExpressionSearch, range: nil)

println(newStr) //I run 26.4 miles

其中两个有“RegularExpressionSearch”。如果你把它放在游乐场,你可以看到每条线的作用。注意双\转义。一个用于正常的RegEx使用和另一个因为\是Swift中的特殊字符。

也是一篇好文章:

http://benscheirman.com/2014/06/regex-in-swift/