о переводе линии RegexKitLite - PullRequest
0 голосов
/ 16 июля 2011

Я использую RegexKitLite для соответствия некоторым текстам:

ххй * [а] * ххй

, и я хочу сопоставить [abc] и использовать это регулярное значение:

NSString *result = [@"xxx[abc]xxx" stringByMatching:@"\\[(.*)?\\]" capture:1];

тогда результат будет [abc]. Но, если там есть разрыв строки:

ххх [аб с] ххх

Это не работает. Я использую ([\ s \ S] *), также не математика [abc]. Как я могу сопоставить этот текст? спасибо

1 Ответ

0 голосов
/ 16 июля 2011

. не соответствует новым строкам по умолчанию. Вы можете использовать

 ... stringByMatching:@"(?s:\\[(.*)?\\])" ...
//                      ^^^^           ^

или укажите RKLDotAll с параметром -stringByMatching: параметры: inRange: перехват: ошибка: метод.

В качестве альтернативы вы можете использовать жадный вариант

@"\\[([^\\]]*)\\]"   // \[  (  [ ^\] ]  )   \]
...