Re: RegOops

From: Date: Fri, 23 Oct 2015 12:54:26 +0000
Subject: Re: RegOops
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-325218@lists.php.net to get a copy of this message
> 23 okt 2015 kl. 14:44 skrev Karl DeSaulniers <karl@designdrumm.com>: > > Hello all, > With the given string.. > > vehicle10-vehicle-name > > Running regex in a preg_match like > > "/(\w+)([0-9+]+)-(.*)/" > > I am getting. > > array( > 0 => vehicle10-vehicle-name > 1 => vehicle1 > 2 => 0 > 3 => vehicle-name > ) > > If I change it to. > > "/(\D+)([0-9+]+)-(.*)/" > > it works as expected. > > array( > 0 => vehicle10-vehicle-name > 1 => vehicle > 2 => 10 > 3 => vehicle-name > ) > > Why is the \w directive including a digit? > Since when is the number 1 a word?? > > If anyone could enlighten me, I would greatly appreciate it. > > TIA > > Best, > > Karl DeSaulniers > Design Drumm > http://designdrumm.com > Hi Karl! I am not able to pinpoint the exact definition in the official PCRE documentation right now (http://www.pcre.org). But the short hand \w does in deed include numbers. As you can read here for example (https://docs.oracle.com/javase/tutorial/essential/regex/pre_char_classes.html), \w A word character: [a-zA-Z_0-9] Although its already Friday, your pattern is working as expected. /frank

« previous php.general (#325218) next »