#regex #pcre #regular-language
#регулярное выражение #pcre #обычный язык
Вопрос:
У меня проблема с моим регулярным выражением, я пытаюсь извлечь строку / число / что угодно после специальной строки.
У меня есть эта строка:
ТЕСТ 3098
Между TEST и его значением есть 6 пробелов, но я не совсем уверен, всегда ли это 6 пробелов. Я пробую это регулярное выражение (PCRE)
(?<=TESTssssss).*?(?=s)
Результатом должно быть 3098. С помощью моего регулярного выражения я получаю правильный результат, но он недостаточно сильный, если количество пробелов изменится, я не смогу его извлечь.
Вид сзади должен быть ограниченного размера.
Есть какие-нибудь предложения?
Комментарии:
1.
(?<=TESTs ).*?(?=s)
? За ТЕСТОМ следует 1 или много пробелов?
Ответ №1:
Вы можете использовать
TESTs*KS
Если количество пробелов должно быть установлено на некоторое минимальное / максимальное число, используйте ограничивающий квантификатор, s{2,}
будет соответствовать двум или более, s{1,10}
допустимо от 1 до 10 пробелов.
Подробные сведения
TEST
—TEST
s*
— 0 или более пробеловK
— оператор сброса соответствия, который опускает текст, совпадающий до сих пор, из общего буфера памяти соответствияS
— 1 пробелов
Смотрите демонстрацию регулярных выражений
Комментарии:
1. Я не знал о
K
, такой классный чувак. Вот подробное описание регулярного выражения: regex101.com/r/YyaPNU/1