C # регулярное выражение получить только отрицательные числа в строке - PullRequest
0 голосов
/ 07 декабря 2018

Так что моя задача - выбрать только отрицательные числа в моей строке.Тем не менее, есть большая проблема.Моя строка состоит из разных минусов (некоторые для отрицательных чисел, некоторые для вычитания).

Моя идея состоит в том, чтобы получить отрицательные числа, если больше нет цифр перед минусом .Мой шаблон регулярных выражений:

(\d{0}-)?\d+

Тот же шаблон, который не работает, как я думал:

((?!\d)-)?\d+

И я проверяю этот шаблон на этом тексте:

-1 2 (33-44)

Мое ожидание: -1 2 33 44

Результат: -1 2 33 -44

Как вы можете видетьпоследний минус используется для вычитания, это не означает отрицательное число.

1 Ответ

0 голосов
/ 07 декабря 2018

Вы можете получить ожидаемый результат, используя Negative Lookbehind (?<!), проверяя, есть ли одно или несколько чисел перед -:

(?<!\d+)-?\d+

Пример

Чтобы просто сопоставить отрицательные числа в вашей строке, необходимо указать -:

(?<!\d)-\d+

Пример

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