Re: Regular Expressions

From: Date: Tue, 06 Nov 2007 17:26:52 +0000
Subject: Re: Regular Expressions
References: 1 2 3  Groups: php.general 
Request: Send a blank email to php-general+get-264131@lists.php.net to get a copy of this message
True, but you'll have to change the rexex not to match, '&nacute;' or '&atilde; for example (unless you want it) Thiago Ferreira wrote: > you could do it without any function > <?php > > $line = "Hola que tal con &aacute; con acento y e&ntilde;e \n"; > > echo preg_replace('/&([aeioun])(acute|tilde);/i','\1',$line); > > ?> > > On Nov 6, 2007 2:44 PM, Ezequiel Gutesman <egutesman@coresecurity.com> > wrote: > >> Maybe this helps >> >> <?php >> >> >> $line = preg_replace_callback( >> >> '/(&aacute;|&eacute;|&iacute;|&oacute;|&uacute;|&ntilde;)/', >> create_function( >> // single quotes are essential here, >> // or alternative escape all $ as \$ >> '$matches', >> 'switch($matches[0]){ >> case \'&aacute;\': return \'a\'; >> case \'&eacute;\': return \'e\'; >> case \'&iacute;\': return \'i\'; >> case \'&oacute;\': return \'o\'; >> case \'&uacute;\': return \'u\'; >> case \'&ntilde;\': return \'n\'; >> }' >> ), >> $line >> ); >> >> echo $line; >> ?> >> >> if you want to use this functionality several times: >> >> <?php >> >> function myReplace($chr) >> { >> switch($chr[0]){ >> case '&aacute;': return 'a'; >> case '&eacute;': return 'e'; >> case '&iacute;': return 'i'; >> case '&oacute;': return 'o'; >> case '&uacute;': return 'u'; >> case '&ntilde;': return 'n'; >> } >> } >> >> >> $line = "Hola que tal con &aacute; con acento y e&ntilde;e "; >> >> $line = preg_replace_callback( >> >> '/(&aacute;|&eacute;|&iacute;|&oacute;|&uacute;|&ntilde;)/', >> 'myReplace', >> $line >> ); >> echo $line; >> ?> >> >> hope this helps. Note that these are pcre (Perl Compatible RegEx). >> >> >> >> Alberto García Gómez wrote: >>> I'm a mess in regular expressions and I make this code: >>> >>> $link = ereg_replace('&ntilde;','n',$link); >>> $link = ereg_replace('&aacute;','a',$link); >>> $link = ereg_replace('&eacute;','e',$link); >>> $link = ereg_replace('&iacute;','i',$link); >>> $link = ereg_replace('&oacute;','o',$link); >>> $link = ereg_replace('&uacute;','u',$link); >>> >>> I ask if is a way to make those lines into a single one but working as >> well as this piece. I'm thinking in increase those lines so will be >> wonderful if I can optimize the code. >>> >>> >>> Este correo ha sido enviado desde el Politécnico de Informática "Carlos >> Marx" de Matanzas. >>> "La gran batalla se librará en el campo de las ideas" >>> >> -- >> Ezequiel Gutesman >> Researcher >> Corelabs >> Core Security Technologies >> http://www.coresecurity.com/corelabs >> >> PGP Figerprint: 01E4 0E4F 83F8 2D5D 8050 0449 7156 1DF6 C2B3 34AE >> >> -- >> PHP General Mailing List (http://www.php.net/) >> To unsubscribe, visit: http://www.php.net/unsub.php >> >> > -- Ezequiel Gutesman Researcher Corelabs Core Security Technologies http://www.coresecurity.com/corelabs PGP Figerprint: 01E4 0E4F 83F8 2D5D 8050 0449 7156 1DF6 C2B3 34AE

« previous php.general (#264131) next »