Как мне сделать инкремент в регулярном выражении?
Как добавить опцию для увеличения цифровой части регулярного выражения на +1?
Я написал следующий пример
Что я уже пробовал:
string input="dsfjl kfjd dsfds fds sd abc3, abc4, abc5 dsfdgfdf ggd gdfg dfg gdfg dfg gdf gf g abc13 abc14 abc20 abc21 abc22 dsfsdf abc13, abc4, abc5"; Regex rx = new Regex(@"(?:abc(\d+)\s*,?\s*){2,}abc(\d+)"); foreach (Match m in Regex.Matches(input,rx.ToString())) { Console.WriteLine(m.Value); } Console.ReadKey();
Сгенерированный результат таков
abc3, abc4, abc5 abc13 abc14 abc20 abc21 abc22 abc13, abc4, abc5
Но я хочу получить результат как
abc3, abc4, abc5
abc20 abc21 abc22
т. е. получить только те последовательные совпадения, которые имеют цифры, увеличенные на +1
Как я могу реализовать это в своем коде?
Richard Deeming
Так почему же это так abc13, abc14
исключен?
Или второй abc4, abc5
?
Member 12692000
Я хочу 3 или более последовательных строк abcDIGIT
разделяется запятой или пробелом, где цифра увеличивается на +1, в случае abc13 abc14 abc20 abc21 abc22
, только abc20 abc21 abc22
соответствуйте критериям, поэтому следует брать только эту часть.
Iqra Ali
Вопрос неясен, в вопросе нет никакой последовательной логики.