RegEx соответствует только номерам, которые не начинаются и не заканчиваются одинарной кавычкой - PullRequest
0 голосов
/ 07 июня 2018

Я пытаюсь заменить все числа в строке, которые не заключены в одинарные кавычки, используя Java.

Пример: 22 111 '333

соответствие должно возвращать только: 22 и 333

Я попробовал несколько регулярных выражений:

Я начал с выбора всех вхождений чисел -?\\d+

Я пытался построить это, но не смог отрицать одну кавычку иСочетание с вышесказанным: -?(^[^\']([0-9]*)), ни (^((?!').)[0-9]{1,22}) работал.

1 Ответ

0 голосов
/ 07 июня 2018

Вы можете использовать это регулярное выражение с проверочными утверждениями:

(?<![\d'])\d+(?![\d'])

Демонстрация RegEx

  • (?<![\d']): отрицательный взгляд, за которым мы утверждаемв предыдущей позиции нет ни одной кавычки или цифры
  • (?![\d']): отрицательный взгляд на утверждение, что в следующей позиции нет ни одной кавычки или цифры
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...