Проблема preg_match в считывании трубопровода

StackOverflow https://stackoverflow.com/questions/20353152

  •  25-08-2022
  •  | 
  •  

Вопрос

<?php     
$value='A';
    if(preg_match("/|/",$value)){
        echo 'This is no good!';
    }
    else{
        echo 'Works';
    }
?>

Если вы выполните приведенный выше код, вы увидите, что preg_match() не работает, пока у меня нет | или трубопровод в переменной.

Почему preg_match не работает для одиночного символа или символа конвейера?

Это было полезно?

Решение

Вертикальный характер трубы (|) имеет особое значение при использовании внутри регулярного выражения. Он используется для указания альтернатив в регулярном выражении. Вам нужно правильно избежать его, если хотите соответствовать буквальному | персонаж:

if(preg_match("/\|/",$value)){
    # code ...
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top