Проверьте символ трубы с помощью Regex - PullRequest
4 голосов
/ 19 декабря 2009

Символ канала | используется в Регулярном выражении как своего рода утверждение «либо», насколько я знаю. Или это, или то, или это, или это, и т. Д ...

Однако я хочу проверить строку с регулярным выражением на наличие этого символа. Я пытался избежать этого, но, похоже, это не сработало.

Как мне это сделать, особенно если я уже проверяю количество присутствующих символов, таких как #, &, @ и т. Д.

Ответы [ 2 ]

7 голосов
/ 19 декабря 2009

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

"\\|"
'\\|'

Другим способом было бы использование класса символов ([|]), поскольку там у вас есть только символы ], ^ (только в начале), -, сам escape-символ \. и разделитель, который имеет особое значение и, следовательно, должен быть экранирован, если должен быть выражен в виде простых символов.

5 голосов
/ 19 декабря 2009
$ cat 1933190.php

<?php
    echo preg_match("/\|/", "This is not a pipe.") . "\n";
    echo preg_match("/\|/", "The | the | this is a |.") . "\n";
?>

Выход:

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