сопоставить текст, который следует за специальной строкой - PullRequest
1 голос
/ 20 марта 2019

У меня проблема с моим регулярным выражением, я пытаюсь извлечь строку / число / что угодно после специальной строки.

У меня есть эта строка:

ТЕСТ 3098

Между тестом и его значением есть 6 пробелов, но я не совсем уверен, что это всегда 6 пробелов.Я пытаюсь это регулярное выражение (PCRE)

(?<=TEST\s\s\s\s\s\s).*?(?=\s)

Результат должен быть 3098. С моим регулярным выражением я получаю правильный результат, но он недостаточно силен, если число пробелов изменилось, которое я выигралне сможет извлечь его.Вид сзади должен быть в ограниченном размере.Есть предложения?

1 Ответ

1 голос
/ 20 марта 2019

Вы можете использовать

TEST\s*\K\S+

Если число пробелов должно быть установлено на некоторое минимальное / максимальное число, используйте ограничивающий квантификатор , \s{2,} будет соответствовать двум или более, \s{1,10} позволит 1 к 10 пробелов.

Детали

  • TEST - TEST
  • \s* - 0 или более пробелов
  • \K - оператор сброса совпадений , который пропускает сопоставленный текст так далеко от общего буфера памяти совпадений
  • \S+ - 1+ без пробелов

См. Демоверсию regex

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