Как проверить, содержит ли строка ровно 2 подстроки

$string = "/*123123123*/";
$string = "123/*123123*/";
$string = "/*123123*/123";
$string = "123/*123123*/123";

для всех этих вариантов мне нужно вернуть true, поэтому / * и * / присутствуют в строке.

Пытался

if(preg_match("/(/*&*/)/i", $string)){

$flag=true;
}
else{
$flag=false;
}

но это не сработало: c

0

Решение

Используйте substr_count (): http://php.net/manual/en/function.substr-count.php

int substr_count (строка $ haystack, строка $ needle [, int $ offset = 0 [, int $ length]])

0

Другие решения

Ты можешь использовать:

if (preg_match('%/\*.+\*/%', $string)) {
$flag = true;
} else {
$flag = false;
}

Regex Demo и объяснение

0

я использовал

if((strpos($string,"/*")!== FALSE) && (strpos($string,"*/")!== FALSE)){
$flag=true;
}
else{
$flag=false;
}

На самом деле не знаю, что лучше использовать, код выше или код с помощью регулярного выражения Педро Лобито:

if (preg_match('%/\*.+\*/%', $string)) {
$flag = true;
} else {
$flag = false;
}
0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector