Проверьте на цифры с помощью тире с помощью регулярных выражений - PullRequest
0 голосов
/ 19 марта 2020

Если мне нужна строка, соответствующая этому шаблону: "* - - ***", "123-12-123", "123-1", как мне проверить строку, чтобы сделать уверен, что это подходит, в PHP?

Я хочу убедиться, что строка соответствует любому из следующих шаблонов:

"***-**-***"
"123-12-123" (ONLY NUMERIC WITH -)
"123-1" (ONLY NUMERIC WITH -)

Ответы [ 2 ]

0 голосов
/ 19 марта 2020

вы можете найти все числа без регулярных выражений, например


$numbers=sscanf('123-12-123','%d-%d-%d');

print_r($numbers);

output

Array
(
    [0] => 123
    [1] => 12
    [2] => 123
)

, если вы хотите получить его с регулярным выражением, вы можете сделать это с помощью следующего кода


$re = '/\d{3}-\d{2}-\d{3}/m';
$str = '123-12-123';

preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);

// Print the entire match result
var_dump($matches);
0 голосов
/ 19 марта 2020

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

/\d{3}\-\d(\d\-\d{3}|)/

Если вам нужно сопоставить только эту строку, поставьте ^ после первых / и $ перед последними /

Имейте в виду, что это будет соответствовать любому, что начинается ddd-d как есть

Вы можете увидеть, как это работает здесь https://3v4l.org/JI5GT

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