如何使用正则表达式在语句周围加上引号

时间:2012-01-19 05:09:50

标签: iphone ios regex xcode regexkit

我正在使用regexkitlite在xcode中验证我的iPhone应用中的某些数据。

我正在进行api调用,发送json结果:

"taskDate": newDate("September 23, 2011 00:00:00")

如何使用正则表达式将其转换为:

"taskDate": "newDate("September 23, 2011 00:00:00")"

我想用引号括起每个“taskdate”键的值。

编辑:添加OP的评论

以下是我正在使用的内容:

[resultString replaceOccurrencesOfRegex:@"new Date((.*?)\")," withString:@"\"\"," range:NSMakeRange(0, [resultString length])];

其中resultString是包含“new Date(....”

的字符串

1 个答案:

答案 0 :(得分:1)

您可以使用正则表达式以“taskDate”格式识别文本中的文本位置:“newDate(”2011年9月23日00:00:00“)”但实际的替换是您必须自己编写的。 Regex不替换字符串,它在字符串中找到模式。现在,为了找到"taskDate": newDate("<anything can go here>")的模式,你可以使用

"taskDate"\: newDate\(".*?"\)

如果括号内可能有其他内容,则必须更具体,并且只在内部指定日期:

"taskDate"\: newDate\("[a-zA-z]* \d{2}, \d{4} \d{2}\:\d{2}\:\d{2}"\)

这将匹配"taskDate"\: newDate\("Letters 00, 00:00:00"\)类型的所有内容。从这里,您可以使月份具体,并允许所有报价之间的空白。所有这些变化使得正则表达式变得更加复杂,因此只能使它更严格以避免匹配您不想要的东西。如果没有任何情况可以在括号内包含其他东西,我会使用第一个正则表达式。

也就是说,在匹配内容中的字符串后,您需要编写代码以用引号括起来。