2012-01-19 141 views
2

我正在使用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是包含了 “新的日期(....”

回答

1

你的字符串可以使用正则表达式来识别你的文本中的文本格式为“taskDate”:“newDate(”2011年9月23日00:00:00“)”,但你必须自己编写实际的替代品。“正则表达式” t替换字符串,它发现模式w在一个字符串中。现在,为了找到"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"\)类的所有内容。从这里你可以设定具体的月份,并在所有报价之间留出空格。所有这些变化都会使正则表达式更加复杂,所以只能使它更加严格,以避免匹配你不想要的东西。如果没有其他的东西可以放在括号内,我会选择第一个正则表达式。

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

+0

我注意到你提到了正则表达式并没有替换字符串。我在iOS上使用regexkitlite,它有一个函数“replaceoccurencesofregex”。这里是我正在使用的: [resultString replaceOccurrencesOfRegex:@“new Date((。*?)\”),“withString:@”\“\”,“range:NSMakeRange(0,[resultString length])] ; 其中resultString是包含“新日期(...” – bakwarte

+0

我不熟悉regexkitlite或与iOS一般:)然后使用替换功能它与我写的正则表达式。让男人知道如果你需要更多的帮助:) – apines

+0

我如何提取“<任何可以去这里>的部分,所以我可以从新的日期(033333)改写为”新的日期(033333)“? – bakwarte