Jeg trenger å matche et mellomromstegn i et vanlig PHP-uttrykk. Noen som har noen ideer?
Jeg mener som " gavin schulz ", mellomrommet mellom de to ordene. Jeg bruker et vanlig uttrykk for å sikre at jeg bare tillater bokstaver, tall og et mellomrom. Men jeg er ikke sikker på hvordan jeg skal finne mellomrommet. Dette er hva jeg har akkurat nå:
$newtag = preg_replace("/[^a-zA-Z0-9s|]/", "", $tag);
Det virker for meg som å bruke en REGEX i dette tilfellet ville bare være overkill. Hvorfor ikke bare strpos for å finne mellomromstegnet. Det er heller ikke noe spesielt med mellomromstegnet i regulære uttrykk, du bør kunne søke etter det på samme måte som du ville søkt etter et hvilket som helst annet tegn. Det vil si med mindre du har deaktivert mønstermellomrom, noe som neppe er nødvendig i dette tilfellet.
Du kan også bruke \b for en ordgrense. For navnet ville jeg bruke noe sånt som dette:
[^\b]+\b[^\b]+(\b|$)
EDIT Endre dette til å være et regex i Perl eksempel
if( $fullname =~ /([^\b]+)\b[^\b]+([^\b]+)(\b|$)/ ) {
$first_name = $1;
$last_name = $2;
}
EDIT AGAIN Basert på hva du ønsker:
$new_tag = preg_replace("/[\s\t]/","",$tag);