Bir PHP düzenli ifadesindeki boşluk karakterini eşleştirmem gerekiyor. Fikri olan var mı?
Yani "gavin schulz" gibi, iki kelime arasındaki boşluk. Yalnızca harflere, sayılara ve bir boşluğa izin verdiğimden emin olmak için düzenli bir ifade kullanıyorum. Ama boşluğu nasıl bulacağımdan emin değilim. Şu anda elimde olan şey bu:
$newtag = preg_replace("/[^a-zA-Z0-9s|]/", "", $tag);
Bana öyle geliyor ki, bu durumda bir REGEX kullanmak aşırıya kaçmak olacaktır. Neden boşluk karakterini bulmak için sadece strpos kullanmıyorsunuz? Ayrıca, düzenli ifadelerde boşluk karakteri ile ilgili özel bir şey yoktur, başka herhangi bir karakteri aradığınız gibi onu da arayabilmelisiniz. Yani, desen boşluklarını devre dışı bırakmadığınız sürece, ki bu durumda pek gerekli olmayacaktır.
Kelime sınırı için \b'yi de kullanabilirsiniz. İsim için şöyle bir şey kullanırdım:
[^\b]+\b[^\b]+(\b|$)
EDIT Bunun Perl örneğinde bir regex olacak şekilde değiştirilmesi
if( $fullname =~ /([^\b]+)\b[^\b]+([^\b]+)(\b|$)/ ) {
$first_name = $1;
$last_name = $2;
}
YENİDEN DÜZENLE Ne istediğinize bağlı olarak:
$new_tag = preg_replace("/[\s\t]/","",$tag);