Как я могу использовать регулярные выражения, чтобы поставить кавычки вокруг заявления - PullRequest
2 голосов
/ 19 января 2012

Я использую regexkitlite для проверки некоторых данных в моем приложении для iPhone в xcode.

Я делаю вызов 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 Ответ

1 голос
/ 19 января 2012

Вы можете использовать регулярные выражения, чтобы определить, где в вашем тексте у вас есть текст в формате «taskDate»: «newDate (« 23 сентября 2011 г. 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"\). Отсюда вы можете указать месяцы и оставить пробел между всеми цитатами. Все эти изменения делают регулярное выражение более сложным, поэтому сделайте его более строгим, чтобы избежать сопоставления вещей, которые вам не нужны. Если не существует сценария, что в скобках может быть что-то еще, я бы использовал первое регулярное выражение.

Тем не менее, после того, как вы сопоставите строку в вашем контенте, вам нужно написать код, чтобы окружить его цитатами.

...