[php] jeszcz raz ja PREG MATCH

0

patrzcie mam taka zmienna

$delta="singleSignonFromXAction;jsessionid=CnryvCvGwjP7N4QHWXBlQ5GpBSr1BLCtVxbzLQn3zWdcP5Sv07hR!1535101127!1122478962253?jsessionid=CnryvCvGwjP7N4QHWXBlQ5GpBSr1BLCtVxbzLQn3zWdcP5Sv07hR%211535101127%211122478962253";

teraz musze wydobyc

$b="!1535101127!1122478962253?";

a pozniej
$c="%211535101127%211122478962253";

wiec konstrukcja preg match powinna byc taka:
na poczatku szukaj symbolu ! i zapamietuj wszytskie znaki do znaku ?
wiec moze byc zmienna $b="!1535101127!1122478962253?"; lub
$b="1535101127!1122478962253"; a znaczki sie doklei

wiec konstrukcja na jezzyk php wydaje sie prosta

preg_match('/^!.{0,}?$/',$html, $idadd);
^na poczatku !
.{0,} dowolna ilosc znakow
?$ na koncu znak zapytania ?

ale to nie dziala :( to jak to powinno wygladac juz nie mam pomyslow? jak to zrozumiec?

0

Pewnie da to się zrobić w jednym poleceniu, ale ja nie łapię w ogóle tych preg_matchów :/

<?

 $delta="singleSignonFromXAction;jsessionid=CnryvCvGwjP7N4QHWXBlQ5GpBSr1BLCtVxbzLQn3zWdcP5Sv07hR!1535101127!1122478962253?jsessionid=CnryvCvGwjP7N4QHWXBlQ5GpBSr1BLCtVxbzLQn3zWdcP5Sv07hR%211535101127%211122478962253";

 preg_match('/!.*.\?/',$delta,$b);
 preg_match('/%.*./',$delta,$c);
 echo 'b: '.$b[0].'<BR>';
 echo 'c: '.$c[0].'<BR>';

?>
0
<?php
preg_match('/(![0-9!]+\?)[^%]*(%[0-9%]+)$/', $delta, $matches);
echo $matches[1] . '<br>' . $matches[2];
?>
0
zyz napisał(a)

preg_match('/^!.{0,}?$/',$html, $idadd);
^na poczatku !
.{0,} dowolna ilosc znakow
?$ na koncu znak zapytania ?

  1. ^ na początku nie zadziała - bo szukany ciąg nie znajduje się na początku przeszukiwanego tekstu
  2. .{0,} to owszem - dowolna ilość znaków, ale zazwyczaj pisze się tak: .*
  3. ? jest znakiem specjalnym i jeśli chcesz go znaleźć w tekście jako zwykły znak, to musisz poprzedzić go backslashem: ?

//następny temat z tak debilnym tematem wyleci zanim się spostrzeżesz!

1 użytkowników online, w tym zalogowanych: 0, gości: 1