Autor Zpráva
jozinek
Profil *
Ahoj,

pomocí preg_match testuju řetězec na výskyt několika možných řetězců.

Mám problém že v těch řetězcích se určité části shodují a já bych potřeboval aby se mi ohlašovala pouze přesná shoda CELÉHO řetězce.

díky moc
Joker
Profil
jozinek
Jak vypadá regulární výraz?
Ale jestli to má být přesná shoda celého řetězce na několik variant, je celkem zbytečné používat preg_match:
if(($retezec == "první") || ($retezec == "druhý") || ($retezec == "třetí")) echo("Shoda!");
jozinek
Profil *
procházím postupně řádky a testuju je na shodu z $patterns. ovšem echo se vypíše už při prvím nálezu řetězce "text neco" a já potřebuju aby se to vypsalo až u řádku, který obsahuje "text neco super". Prostě přesnou shodu.


$patterns = array (
"text neco",
"text neco super",
"text neco super super"
);

foreach ($lines as $line){

foreach ($patterns as $pattern){
    $regexp = "/".$pattern."/";
    if (preg_match($pattern, $line)){
      echo $line;
      break 2;
    }
  }

}
jozinek
Profil *
sorry, na radku 11 je chyba, má tam být $regexp místo $pattern
Majkl578
Profil
jozinek
^vyraz$
^ zacatek retezce
$ konec retezce
Joker
Profil
jozinek
Stále trvá můj dotaz:
Proč nepoužít operátor == místo preg_match?
$patterns = array (
"text neco",
"text neco super",
"text neco super super"
);

foreach ($lines as $line){

foreach ($patterns as $pattern){
    if ($lines == $pattern){
      echo $line;
      break 2;
    }
  }
}
jozinek
Profil *
Joker:

ty patterns jsou pouze části těch testovaných řetězců

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0