Как я могу использовать неназванные группы регулярных выражений в C# внутри моего регулярного выражения?
Эй, так что мое текущее регулярное выражение @"(into)(to)add\s[^\s]{1,}\1|\2[^\s]{1,}"
Я хочу, чтобы вход был чем-то "добавить слово в / в категорию", регулярное выражение в целом работает нормально, но только \1|\2
частично, я пытался использовать группы и все виды решений, но я просто не могу понять, как я могу сделать это так, чтобы ввод into
или же to
Может кто-нибудь мне помочь? (это в C# и с использованием Regex
учебный класс)
2 ответа
Если я вас правильно понял, вам не нужны обратные ссылки на (неназванные) группы, вы можете использовать простое чередование, например:
@"add \w+ (into|to) \w+"
Это выберет либо into
или же to
в строке поиска.
Редактировать:
Давайте получим немного больше "продвинутых", используя optional
знак '?
":
@"add \w+ (in)?to \w+"
Это будет соответствоватьin
"ноль или один раз, а затем"to
', так что будет соответствовать into
так же как to
Точно так же, как оригинал RegEx.
Edit2:
У меня есть ощущение, что вы хотите использовать переменную внутри вашего RegEx, вы, конечно, можете сделать это так:
string search = "into|to";
RegEx regEx = new ReqEx(@"add \w+ (" + search + ") \w+");
Из вашего приведенного примера я думаю, что вы ищете регулярное выражение, как add\s\w+\s(into|to)\s\w+
, Ваше текущее регулярное выражение соответствует только строкам, начинающимся с "intoto", что, вероятно, не то, что вы хотите.