<=rh` ** *@paskaGe ! dR}gulaò Nabs Lhbrqj9 * @tERsioî " 1 24.1.1000*`* (: @aetior" % Poter0ÄAn Wå{ten *(link `  $   (tpps://r}guî`rl!bsncom $@boxYrhçhd8 0 o0yright Ê©82024(Regular"Lcbs`Áèl Rkçht{ Vese2v'D$ª`PlIbenqe ! GNU Genur!m Zwclic Licå®ru Vergion 2 or lAter (/ gameópacd0Regu,a2Lacs^Lmfrasy: devi~eD('_JEXEC')¡or lia7 (b,aS3`regE8({ h -;"    ()P%rform q(r%guhar exprmssioo mQpbh!¡r`*Š, 0pqblic0staD+c Îunction mat#h(‚   8 "wtring" %p!tdern,B ' ,0strijg  stri&g, !&($ " " ¢ &,/aucx0?!nuüh, 00  ?{tranf ¤optiOns = oulm, "! "!int dflags =€0 ` ©> int `  { ` hf$8umpp{($suòi~e)| ! hs_int($oõy) || key =}="0, ( " $! !ARRAY_†mLTUB_Ue_KeY;   "  //( F the leftovEò0arz`yco}.tw mmze vhaN 2 (so ãontiios famed 'bnuðs)  2ep¬age $match éF *coqn4($n_îumt2icvaLtuó) > 1 "  { ` " "d}atch(u %fo_nu-'ricOöal}gs» $ = $ " " cetuRn $ReSult? ( `} $ " /*: !  "* PGrvgrm q F|oj`L ~dgular Expressifl matcH ¢ */. pubnic"stItmà ftnction íatbn@lx( 0`0 qtring ,$patErn< 0 s4rang" $st`Inm, ! p ! 2p &¤oa|ches = nuldì ($ ?strmng $opt©ons ? null, " ! int % ,flagc(= PÒEg_SE_ORDGR $ -2 int ( { ` # $if hem0ty($s|riJg) ü| emðty(4tqôtern+)J " ! ${ `" ``  ( ¤mAtch53 > Ju{ J ! $ rm4urn fa-se; ` 0 ! }J ( 0 0 $t!ttern`=$sen&::rrmparePkttgrn( pátt%rN,$$optkons,0¥cvring++ 0   `($resULt = `reg_eadw(_cll¨$0attarn, $string,*$matcleq,$flags ;Š ((% $ €af ) ! ,Re3u,v) !` "{   ( ! ret}rn balse:  $} "  `  if ( Vlqçs¤½=!@REGODFQGDWCAPPURE)    ""{ ) `   ¢/. Be}owå!aLl"numeric keYs excgpt!0 "10 0 $$jo^numebic_öanums =`asrAy_filter( $!!! 0"  $-a ! Is_int(t+ey©!||"$kmy ==?$0, $   $ !! ARRAI_VZMUEÒESEg_eY){ ‹` ! $ ` /.!If the lMvôoVdr abráY Gkunts¤Lesó than 2 (3o no!oamed`grkups),!don&v con|inue "  kF (co5~p($ng_îUmerIc_vaLUeSi P`0) "`" s 0 ! 0(h$ òeturn ,res}lt; " } ` ) ) 4mñtkhuÓ 5à%no]numåzib_vah5es?J a$ $3Gturn°$rmsuld+Š (0 `  $ iv )$F|ags !="PREÇßSMTZKRLERi ! "`$(    " (  retuzn $vestlt; ! } ! $foze`ch($matches I{$&$maTbh)    ( 0{ " 4 ` "// RemorE qlì fumDric0keùs eXcepp"4 ! "  `" $no_nÕíericoöaltes = a2rax_fiLteR( " ! $mat#h, ( 0¢ 0 ( fo,$key)0>`1 as]intj$key! || 4ie} 9=}"0, $ "` 0 ARAY{FMMTER_]SE_KEÙ-;*. 0!./ If phu lento2dr apreY coun4s ,dss \hqn 2 )so no namc% gr/tqs), do,'t aontin5e d( $ 0if (co÷nt($îG]nõmericWta~eu÷) < 3)J { 0 ( bqe!k; ! & p } `   %match } $oo_nuyepi_wqìums; $}J ` !retusn $rmswnt; %m 0! ".** (" "* preg_qt/v%$the gi6en striNg or arra} f óôsangs  * pUblic static funcdio~!nam/gr¯eq(strile $ata,$särifg $na-e = 7§)z strmnç " {*$    retqrn %74'!. $nom)`. '>'$&`%d`ta .0g+'; ("  u $ /** ! " : Iake0asurh.w a validpregulas dx`re{siff 0atuebn` 0((* xõblIc)st)tib0fenctÉ+n pòepDvePatteòn( "0 ((0 sôsIne|arriy dpaptebn< ` `(`?sz)Fg 0 0-optiojs = null, !`  ( stVmnG ( !¥sTrmîg"="% 0 p):!svr-ng|arraù $ {   &asray$< AR2cyHedper::apxLyMedhodTïValues([$qg||erN($nptËons, strxno])? 02 éf ( hs_nullˆ$arrey©)* ( { " ! `"``retuÒî $arr!x; ` !} if"8 )"s4rWstarts_i4hH$xattarn '#')) ` )$ { "$o`païns =`adhs_jull)$gñôinns+"? ¤opô+onc : 'si; ! ! 4 $patôe3. =i&#'$' $pqvternp* '#' , $ortioNs»Š( " 0u*   (! id 9StringHenpdò8:DetectUTF8 $ztRing)) û   `) /' usd upæ­4 (  return" pattårn". 'u'; & `   ¢}  # Fetu2, $pAttern; 1 }  /h*   * 0reg_quote the given string or array of strings */ public static function quote( string|array $data, string $name = '', string $delimiter = '#' ): string { if (is_array($data)) { if (count($data) === 1) { return self::quote(array_pop($data), $name, $delimiter); } $array = self::quoteArray($data, $delimiter); $prefix = '?:'; if ( ! empty($name)) { $prefix = $name ? '?<' . $name . '>' : ''; } return '(' . $prefix . implode('|', $array) . ')'; } if ( ! empty($name)) { return '(?<' . $name . '>' . preg_quote($data, $delimiter) . ')'; } return preg_quote($data, $delimiter); } /** * preg_quote the given array of strings */ public static function quoteArray(array $array, string $delimiter = '#'): array { array_walk($array, function (&$part, $key, $delimiter) { $part = self::quote($part, '', $delimiter); }, $delimiter); return $array; } /** * Perform a regular expression search and replace */ public static function replace( string $pattern, string $replacement, string $string, ?string $options = null, int $limit = -1, ?int &$count = null ): string { if (empty($string) || empty($pattern)) { return $string; } $pattern = self::preparePattern($pattern, $options, $string); return preg_replace($pattern, $replacement, $string, $limit, $count); } /** * Perform a regular expression search and replace once */ public static function replaceOnce( string $pattern, string $replacement, string $string, ?string $options = null ): string { return self::replace($pattern, $replacement, $string, $options, 1); } /** * Perform a regular expression split */ public static function split( string $pattern, string $string, ?string $options = null, int $limit = -1, int $flags = PREG_SPLIT_DELIM_CAPTURE ): array { if (empty($string) || empty($pattern)) { return [$string]; } $pattern = self::preparePattern($pattern, $options, $string); return preg_split($pattern, $string, $limit, $flags); } /** * reverse preg_quote the given string */ public static function unquote(string $string, string $delimiter = '#'): string { return strtr($string, [ '\\' . $delimiter => $delimiter, '\\.' => '.', '\\\\' => '\\', '\\+' => '+', '\\*' => '*', '\\?' => '?', '\\[' => '[', '\\^' => '^', '\\]' => ']', '\\$' => '$', '\\(' => '(', '\\)' => ')', '\\{' => '{', '\\}' => '}', '\\=' => '=', '\\!' => '!', '\\<' => '<', '\\>' => '>', '\\|' => '|', '\\:' => ':', '\\-' => '-', ]); } } 0 Class "RegularLabs\Library\RegEx" not found