Ошибка создания / выхода из NSRegularExpression
Я хочу создать следующее регулярное выражение с NSRegularExpression
: + (, |. | \ n | \ s)
Одно или несколько вхождений любого из них: запятая, точка (точка), новая строка, пробел.
Я пытался создать NSRegularExpression
следующее:
NSRegularExpression* regex = [NSRegularExpression regularExpressionWithPattern:@"+(,|.|\\n|\\s)" options:NSRegularExpressionCaseInsensitive error:&error];
Важным моментом является:
regularExpressionWithPattern:@"+(,|.|\\n|\\s)"
Из ссылки на класс есть эта информация об экранировании / цитировании:
Выражение символов: \
Описание: Цитирует следующий символ. Символы, которые должны быть заключены в кавычки, чтобы считаться литералами *? + [ () { } ^ $ | \ . /
Итак, я хочу .
рассматриваться как буквальный. Я пробовал следующее:
+(,|\.|\\n|\\s)
+(,|\\.|\\n|\\s)
Ни одна из вышеперечисленных работ; все результат в nil
за regex
с NSCocoaErrorDomain
а также NSInvalidValue
в error
,
Может кто-нибудь сказать мне, как создать регулярное выражение, которое я хочу?
Благодарю.
1 ответ
Вы могли бы иметь квантификатор +
в неправильном месте. В большинстве реализаций Regex квантификатор применяется к группе / персонажу, помещая его позже, например так:
(,|\\.|\\n|\\s)+