Jump to content
php.lv forumi

Recommended Posts

Posted (edited)

Man ir dots skaitlis (no 1 līdz 15) un sekojoša virkne - kautkas(1);kakis(2);suns(3);maaja(4); u.t.t. līdz 15.

 

Ar kādu regulāro izteiksmi, zinot skaitli, es varu iegūt tam atbilstošo vārdu? Piem., es zinu skaitli "2", rezultātā izdod "kakis".

Edited by Sliipeetais
Posted

nu es to realizētu ar masīvu:

 

$str="kautkas(1);kakis(2);suns(3);maaja(4)...";

$mas=explode(";",$str);

echo $mas[1]; //izdos kakis(2)

Posted

dotajā variantā es tāpatās pielietotu masīvu:

$str="kautkas(1);kakis(2);suns(3);maaja(4)...";
$kovaig=4;
$mas=explode(";",$str);
$tmp=$mas[$kovaig];
$tmp=explode('(',$tmp);
echo $tmp[0]; //izdos kakis

 

mazliet pamainīts preg.variants:

'#;?([^\(;]+)\('.$number.'\)#'

 

nozīmē:

## "separatori", var izmantot pierastos /

 

;? - var būt vai arī nebūt priekšā semikols

([^\(;]+) vismaz viens simbols kas nav "(" (lai aizietu "līdz (") vai ";" (lai sāktu no ";" uz priekšu), ja iespējams, atkārtoti, tas viss tiek pārtverts iekš $1 {sīkāk: [] apzīmē simbolus kopu, +, ka simbols no kopas var atkārtoties vismaz vienu reizi, ^ priekšā simbolu kopai apzīmē "ne" - jebkurš simbols izņemot }

\( pirms numura "("

vajadzīgais nummurs

pēc numura ")" citādi uz "2" meklēšanu kopētu arī (23)

 

Ja eclubs piecelsies, var pamācīties iekš VenRExp

Posted (edited)

Njā, un es tikai tagad aptvēru, ka jamais variants ar masīvu manā gadījumā neder, jo, ir iespējams, ka skaitļi nav sakārtoti secīgi, piem. kautkas(100); britnija(1); agvilera(50) u.t.t.

Edited by Sliipeetais
Posted

kāpē? ja mazliet pielabo...

$str="kautkas(1);kakis(2);suns(3);maaja(4)...";
$kovaig=4;

$mas=explode(";",$str);
/* mas = array (kautkas(1), kakis(2), suns(3) ...) */
$correct=array();
while($tmp=array_shift($mas))
{
//$tmp=text(1)
$tmp=str_replace('(','|',$tmp);//$tmp=text|1)
$tmp=str_replace(')','|',$tmp);//$tmp=text|1|
$tmp=explode('|',$tmp);
//$tmp=array( text, 1, '' )
$correct[$tmp[1]]=$tmp[0]; //$correct[number]=text
}
echo $correct[$kovaig];

 

Ja vajag izvadīt vairākus "kovaig", tad šis variants varētu būt efektīgāks par preg.

×
×
  • Create New...