Как я могу избежать специальных символов в NSString, используя RegexKitLite? - PullRequest
3 голосов
/ 04 декабря 2010

Я создаю регулярное выражение, которое использует строки, введенные пользователем, но строки могут содержать специальные символы, такие как. \ или * и я хочу, чтобы они трактовались как литералы и не интерпретировались их особыми значениями в регулярном выражении. Я пробовал это:

NSString *word = [input stringByReplacingOccurrencesOfRegex:@"(\\P{L})" withString:@"\\$1"];

но не буквенные символы преобразуются в $ 1 вместо префикса с обратной косой чертой. Я пробовал одну и три обратных косых черты во втором семестре, но они дают мне предупреждение «Неизвестная escape-последовательность» в XCode. Как я могу напечатать обратную косую черту без RegexKitLite, думая, что я избегаю знака доллара?

1 Ответ

7 голосов
/ 05 декабря 2010

Напишите выражение, как обычно, а затем замените каждый обратный слеш двумя. Таким образом

\. 

становится

\\. 

и

\\ 

становится

\\\\
...