Как я могу избежать специальных символов в NSString, используя RegexKitLite?
Я создаю регулярное выражение, которое использует строки, введенные пользователем, но строки могут содержать специальные символы, такие как. \ или * и я хочу, чтобы они трактовались как литералы и не интерпретировались их особыми значениями в регулярном выражении. Я пробовал это:
NSString *word = [input stringByReplacingOccurrencesOfRegex:@"(\\P{L})" withString:@"\\$1"];
но не буквенные символы преобразуются в $1 вместо префикса с обратной косой чертой. Я пробовал одну и три обратных косых черты во втором семестре, но они дают мне предупреждение "Неизвестная escape-последовательность" в XCode. Как я могу распечатать обратную косую черту без RegexKitLite, думая, что я избегаю знака доллара?
1 ответ
Решение
Напишите выражение, как обычно, а затем замените каждый обратный слеш двумя. таким образом
\.
становится
\\.
а также
\\
становится
\\\\