#php #regex #preg-match
#php #регулярное выражение #preg-match
Вопрос:
0 10 2 012 11 12 12 test -f 13 x xx
0 2 102 012 12 12 test -f 11 xxddd 22x
0 102 01 2 1 12 12 test -f 12 xxx
Мне нужно найти число (от 1 до 5 цифр), следующее за -f
параметром с помощью preg_match()
.
Я полная деревенщина в отношении совпадений PCRE.
Я играл с онлайн-тестерами preg и застрял с (.*)-f(d{1,5})(.*)$
Ответ №1:
О, я не заметил, насколько близко я его получил:
^.* -f (d{1,4}).*$
Array
(
[0] => 0 10 2 012 11 12 12 test -f 13 x xx
[1] => 13
)
Комментарии:
1. на самом деле вам нужно только
-fs (d )s
2. @GeraldSchneider Я собираюсь принять любой рабочий шаблон, опубликованный кем-либо, если вы не стесняйтесь отвечать на ваш…
3. Я согласен, что ему не нужно
^.*
, но вашd
предоставит 1 или более цифр, число, которое может превышать 5 (ему нужны только цифры до 5).4. обычно при разборе параметра требуется полное значение до следующего пробела. уменьшение этого значения до 5 только потому, что на данный момент у вас есть только значения с такой длиной, кажется недальновидным.
5. Я согласен, но у меня сложилось впечатление, что строка чисел может следовать за -f, и он хотел только первые 5. Возможно, я неправильно понял исходный вопрос.