Как я могу использовать неназванные группы регулярных выражений в C # внутри моего регулярного выражения? - PullRequest
0 голосов
/ 09 сентября 2018

эй, так что мое текущее регулярное выражение @"(into)(to)add\s[^\s]{1,}\1|\2[^\s]{1,}" Я хочу, чтобы ввод был чем-то "добавить слово в / в категорию", регулярное выражение в целом работает нормально, но только часть \1|\2, я пытался использовать группы и всевозможные решения но я просто не могу понять, как я могу сделать так, чтобы ввод мог быть into или to

Кто-нибудь может мне помочь? (это в C # с использованием класса Regex)

Ответы [ 2 ]

0 голосов
/ 09 сентября 2018

Если я вас правильно понял, вам не нужны обратные ссылки на (неназванные) группы, вы можете использовать простое чередование, например:

@"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+");
0 голосов
/ 09 сентября 2018

Из вашего приведенного примера я думаю, что вы ищете регулярное выражение типа add\s\w+\s(into|to)\s\w+. Ваше текущее регулярное выражение соответствует только строкам, начинающимся с "intoto", что, вероятно, не то, что вы хотите.

...