php подстрока регулярное выражение - PullRequest
0 голосов
/ 14 февраля 2011

Я читаю php-код весь день, и я не могу найти ответ на простой вопрос.

У меня есть массив, полный строк, и я хочу посмотреть, является ли первый символ в строке числом, а затем что-то с ним сделать, например:

if substr($stringArray[$i],0,1) == regexsomething[0-9]) { do stuff }

Я все понял неправильно?

Конечно, я могу установить регулярное выражение [^ 0-9], чтобы оно совпадало с самого начала, но PHP preg_match меня сильно смущает.

Любой совет будет супер.

Спасибо

Ответы [ 2 ]

4 голосов
/ 14 февраля 2011

В скобках ^ означает «начало», но сразу после [ это означает «инвертировать весь класс». /[^0-9]/ будет соответствовать всему, что содержит не цифру. Регулярное выражение для соответствия одной цифре будет:

/^[0-9]$/

PHP уже имеет функцию для этого, однако: is_numeric()

if ( is_numeric( substr( $stringArray[$i],0,1 ) ) ) { do stuff }

Если вы хотите пройти маршрут регулярного выражения, вам не нужно будет получать первого персонажа. Регулярное выражение, которое соответствует всему, что начинается с цифры, будет:

if ( preg_match( '/^[0-9]/', $stringArray[$i] ) ) { do stuff }
0 голосов
/ 14 февраля 2011

Если вы хотите убедиться, что строка является числом, вы можете использовать is_numeric примерно так:

if(is_numeric($string))
{
    //Do Something
}

Если вы хотите убедиться, что это одна цифра, например 7, вы можете использовать оператор < меньше чем

if(is_numeric($string) && $string < 10)
{
    //Do Something
}
...