Regex для получения цифр из строки, когда между цифрами нет разделителя - PullRequest
0 голосов
/ 09 июня 2019

У меня есть строка типа Acc:123-456-789 и другая строка, например -1234567, мне нужна ваша помощь, чтобы написать выражение для сопоставления цифр, если между цифрами нет разделителя.

-*(?!\d*(?:\d*-)$)\d*$

Строки ввода:

Acc:123-456-789   -12323232 7894596

Желаемый результат:

group 1 12323232 
group 2 7894596

1 Ответ

1 голос
/ 09 июня 2019

Я думаю, что это должно сработать:

(?<=^|\s|\s-)(\d+)(?=\s|$)

Разбить его:

  • (?<=^|\s|\s-) - Положительный взгляд за спиной, который соответствует началу строки, пробела илипробел, за которым следует -.
  • (\d+) - сопоставление и захват числовых последовательностей.
  • (?=\s|$) - положительный прогноз, соответствующий пробелу или концу строки.

** Примечание. Если вам нужно захватить последовательности отрицательных чисел, замените (\d+) на (\-?\d+).

Попробуйте онлайн

Ссылка на регулярное выражение

Помните, что для использования в C # вам необходимо избегать обратной косой черты или использовать префикс @ для строкового литерала (@" ").

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...