Я не могу найти регулярное выражение, имеющее сбалансированные теги, одно для открытия и одно для закрытия. Теги должны содержать текст нескольких строк; и теги динамические, не определены во время компиляцииNSRegularexpression multiline and stack
Я не могу сопоставить закрывающий тег, соответствующий открытому тегу, например {{home}} -> {{home}} и {{hello}} - > {{/ hello}}; она соответствует {{дом}} на {{/ привет}} Любая помощь будет принята с благодарностью
Любая помощь будет принята с благодарностью
Gregoire
пс: Я заметил, неработающего регулярному_выражению
NSString * string;
NSError* error = nil;
NSRegularExpression* regex;
NSArray* matches;
string =
@" The {{demo}}following tables describe the {{/demo}}character expressions"
" used by the regular expression to match patterns within "
" a string,{{home}} the pattern operators that specify how many"
" times a pattern is matched and additional matching"
" restrictions, and the last {{/home}}table specifies flags"
" that can be included in the regular ";
regex = [NSRegularExpression regularExpressionWithPattern:
@"\\{\\{demo\\}\\}"
"(.*)?"
"\\{\\{(//|/demo)\\}\\}"
options:NSRegularExpressionDotMatchesLineSeparators
error:&error];
// regex = [NSRegularExpression regularExpressionWithPattern:
// @"\\{\\{.*\\}\\}"
// "(.*)?"
// "\\{\\{(//|/.*)\\}\\}"
// options:NSRegularExpressionDotMatchesLineSeparators
// error:&error];
matches = [regex matchesInString:string
options:NSRegularExpressionDotMatchesLineSeparators
range:NSMakeRange(0, [string length])];
for (NSTextCheckingResult* match in matches)
{
NSLog(@"### %@ ###", [string substringWithRange:[match range]]);
}
поблагодарить вас за помогите, я не знал/не нашел концепцию групп. Он работает хорошо, за исключением того, что я сделал небольшую замену для нескольких списков: @ "\\ {\\ {([^ /] *?) \\} \\}" ". *?" (здесь есть изменение) "\\ {\\ {((\\ 1) | (//)) \\} \\}" –
работает как шарм, спасибо –