Нужна помощь PHP для начинающих - PullRequest
2 голосов
/ 04 декабря 2010

Я уже некоторое время изучаю PHP, и мне нужно одно разъяснение.

Я видел функцию preg_match, вызываемую различными символами-разделителями, такими как:

preg_match('/.../')

и

preg_match('#...#')

Сегодня я также видел, как используется %.

Мой вопрос состоит из двух частей:

Какие все символы можно использовать?

А есть ли стандарт?

1 Ответ

4 голосов
/ 04 декабря 2010

Любой

  • не алфавитно-цифровой
  • без пробела и
  • без обратной косой черты ASCII символ

может использоваться какразделитель.

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

( { [ <

, тогда должны использоваться соответствующие им закрывающие символы пунктуациикак закрывающий разделитель:

) } ] >

Наиболее распространенный разделитель - /.
Но иногда рекомендуется использовать другой разделитель, если / является частью регулярного выражения.

Пример:

// check if a string is number/number format:
if(preg_match(/^\d+\/\d+$/)) {
  // match
}

Поскольку регулярное выражение содержит разделитель, вы должны избежать разделителя, найденного в регулярном выражении.

Чтобы избежать побега, лучше выбратьдругой разделитель, которого нет в регулярном выражении, поэтому ваше регулярное выражение будет на 1035 * короче и чище :

if(preg_match(#^\d+/\d+$#)) 
...