Требуется шаблон PHP preg

#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. Возможно, я неправильно понял исходный вопрос.