RE: Re[2]: [PHP] One more time about regexes

From: Date: Thu, 27 May 2010 09:16:33 +0000
Subject: RE: Re[2]: [PHP] One more time about regexes
References: 1 2 3 4 5  Groups: php.general 
Request: Send a blank email to php-general+get-305562@lists.php.net to get a copy of this message
> -----Original Message----- > From: Andre Polykanine [mailto:andre@oire.org] > Sent: 27 May 2010 09:14 > To: Adam Richardson > Cc: php-general@lists.php.net > Subject: Re[2]: [PHP] One more time about regexes > > Hello Adam, > > You did understand me exactly and perfectly). > Ordering arrays is a good idea but I don't know how to do that > exactly. > For instance, there's a cypher called Polybius square. You write in > the alphabet in a grid like this: > 1 a b c d e > 2 f g h i j > 3 k l m n o > 4 p q r s t > 5 u v w x y > 6 z > > There is a way where i/j are equal to make a 5 by 5 square but for > me > it's equal since I'm working with a 33-letter Russian alphabet, so > no > way to make it a perfect square. > Anyway, a letter has two coordinates and is represented by a two- > digit > number. For example, E is 15, K is 21, Z is 61 and so on. > So we have a word, say, PHP. It will look like this: 412341. Well, as you're wanting to replace pairs of digits, I'd search for exactly that -- but I think I'd use the e flag to employ a programmed replacement, thus: $str = "4123415 - 2444 452315 12154445!"; $replaced = preg_replace("{(\d\d)}e", "polybius_decode('\\1')", $str); echo $replaced; function polybius_decode($pair) { static $polybius = array( '11'=>'a', 'b', 'c', 'd', 'e', '21'=>'f', 'g', 'h', 'i', 'j', '31'=>'k', 'l', 'm', 'n', 'o', '41'=>'p', 'q', 'r', 's', 't', '51'=>'u', 'v', 'w', 'x', 'y', '61'=>'z' ); return isset($polybius[$pair]) ? $polybius[$pair] : $pair; } Seems to work: "php5 - is the best!". :) Cheers! Mike -- Mike Ford, Electronic Information Developer, Libraries and Learning Innovation, Leeds Metropolitan University, C507, Civic Quarter Campus, Woodhouse Lane, LEEDS,  LS1 3HE,  United Kingdom Email: m.ford@leedsmet.ac.uk Tel: +44 113 812 4730 To view the terms under which this email is distributed, please go to http://disclaimer.leedsmet.ac.uk/email.htm

« previous php.general (#305562) next »