使用正则表达式从Swift字符串中删除Optional()

Saa*_*aad -3 regex iphone ios nsregularexpression swift

我有一个字符串,里面有'Optional(someVal)'.我想要一个正则表达式来查找和替换此关键字的所有匹配项并仅替换其中的内部值.我正在做的是......

query = "Insert Into table (Col, Col, Col, Col, Col, Col4, Col4, Col4, Col, AuditStatusId, Col, Col, Col, Col, Col, Col, Col, Col, Col, Col, Col, Col, Col, Col, Col, Col, Col, Col, Col, Col ) Values ('71E3F86A059A40F0B3F7614E08ACD2B9', 1, Optional(4), Optional(6), ' ', '', Optional(40799), 'NULL', NULL, 1, 1, NULL, NULL, NUll, 0, NULL, 1, '', NULL , NULL, 90.0, 100.0, 70.0, 89.99, 0.0, 69.99, 1, 1, '2015-01-15 14:09:34 +0000', 0 )"
Run Code Online (Sandbox Code Playgroud)

并使用正则表达式替换,

 query = query.stringByReplacingOccurrencesOfString("(\\Optional(w+))", withString: "$1", options: NSStringCompareOptions.RegularExpressionSearch, range: Range<String.Index> (start: query.startIndex, end: query.endIndex)) 
Run Code Online (Sandbox Code Playgroud)

但即使在目标C中,这也不起作用.任何人都知道如何做到这一点?

编辑: 我试图通过展开值来克服这一点,但它没有提出我正在寻找的解决方案.我需要的是保持值为'nil',以防在输入的情况下没有值和'Optional(val)'中的值.因此,请避免建议展开值.

Kir*_*ins 5

我知道我没有回答你原来的问题,但是你的做法会促进不良做法.最好在将值插入查询之前解压缩值.例如,

var optional1: Int? = 10
var optional2: Int?

optional1?.description ?? "NULL" // "10"
optional2?.description ?? "NULL" // "NULL"
Run Code Online (Sandbox Code Playgroud)