Jump to content
php.lv forumi

regexp


tomaac

Recommended Posts

Centīšos paskaidrot labāk:

 

Man šobrīd ira šāds kods:

preg_match_all("/([a-z])+\ *\(/i", $str, $matches, PREG_OFFSET_CAPTURE);

un tad ciklā ņem tos $matches un kaut ko dara...

 

Bet tagad vajaga izmainīt kodu, lai:

1) ja $str = kaut kads teksts temp function ( ----> tad iekš $matches jānonāk "function ("

2) ja $str = kaut kads teksts somef( ----> tad iekš $matches jānonāk "somef("

3) ja $str = kaut kads teksts AS function( ----> tad iekš $matches NAV jānonāk "function(", jo pirms tā ir "sliktais teksts" AS

 

Respektīvi - iekš $matches nedrīkst nonākt tie gabali, pirms kuriem ir teksts " AS "

Edited by tomaac
Link to comment
Share on other sites

Nu, tas, ko negribu, tas jau arī nav tajā izteiksmē...

Man tieši vajaga to tur ieliekt, ar piezīmi, ka tam tur nav jābūt.

 

Piemēram, ja $str = fkldddddd AS function(

tad šitādam nav jābūt "function(", bet viņš tur ir, jo atbilst regexp izteiksmei.

 

Savukārt, ja $str = fkldddddd function(

tad šitam tur ir jābūt "function(", un viņš tur arī ir.

 

Problēma ir tieši tā, ka nemāku uzrakstīt "tam tur nav jābūt".

Link to comment
Share on other sites

LABOTS!

 

$p = '/((^| )(?<!AS )[a-z]+\s*)\(/i';

 

kaut kads teksts AS function ( = false
AS function ( = false
  AS function ( = false
kaut kads teksts function ( = true
  function ( = true
function ( = true

Edited by Delfins
Link to comment
Share on other sites

×
×
  • Create New...