2013-11-23 5 views
1

Как предисловие, я новичок в (и очень плохо) при написании регулярных выражений.Написание регулярного выражения со специальными символами

Я пытаюсь использовать регулярное выражение в функции PHP preg_split, и я ищу, чтобы очертить по

* 
** 
` 

У меня возникают проблемы, потому что эти символы являются командами. Как я могу написать регулярное выражение для этого?

+0

Процитировать их с помощью '\\'. – ceving

+1

Вы также можете использовать ['preg_quote'] (http://php.net/preg_quote), чтобы автоматически сбрасывать эти символы для вас - это также помогает гарантировать, что нет смешивания, потому что обратная косая черта фактически обрабатывается дважды (один раз PHP, один раз PCRE). –

ответ

3

Для PCRE и других так называемых совместимых ароматов, вы должны экранировать эти внешние character classes.

.^$ * + ?() [ { \ | 

кавычка не имеет особого значения, так что вам не нужно, чтобы избежать этого.

preg_split('/\*{1,2}|`/', $text); 

См Demo

Примечание: Для дальнейшего использования, вы можете посмотреть в использовании preg_quote()

preg_quote() принимает ул и ставит обратную косую черту перед каждым символом, который является частью синтаксиса регулярных выражений. Это полезно, если у вас есть строка времени выполнения, которую нужно сопоставить в некотором тексте, и строка может содержать специальные символы регулярных выражений.

Смежные вопросы