Jika Anda mencari ruang, itu akan menjadi " "
(satu ruang).
Jika Anda mencari satu atau lebih, itu " *"
(itu dua spasi dan tanda bintang) atau " +"
(satu spasi dan plus).
Jika Anda sedang mencari jarak umum, penggunaan "[ X]"
atau "[ X][ X]*"
atau "[ X]+"
di mana X
adalah karakter tab fisik (dan masing-masing didahului oleh satu ruang di semua contoh tersebut).
Ini akan bekerja di setiap mesin * regex yang pernah saya lihat (beberapa di antaranya bahkan tidak memiliki karakter satu atau lebih "+"
, ugh).
Jika Anda tahu Anda akan menggunakan salah satu mesin regex yang lebih modern, "\s"
dan variasinya adalah cara untuk melakukannya. Selain itu, saya percaya batas kata cocok dengan awal dan akhir baris juga, penting ketika Anda mencari kata-kata yang mungkin muncul tanpa sebelumnya atau mengikuti spasi.
Khusus untuk PHP, halaman ini dapat membantu.
Dari hasil edit Anda, tampaknya Anda ingin menghapus semua karakter yang tidak valid. Awal dari ini adalah (perhatikan ruang di dalam regex):
$newtag = preg_replace ("/[^a-zA-Z0-9 ]/", "", $tag);
# ^ space here
Jika Anda juga ingin tipuan untuk memastikan hanya ada satu ruang antara setiap kata dan tidak ada pada awal atau akhir, itu sedikit lebih rumit (dan mungkin pertanyaan lain) tetapi ide dasarnya adalah:
$newtag = preg_replace ("/ +/", " ", $tag); # convert all multispaces to space
$newtag = preg_replace ("/^ /", "", $tag); # remove space from start
$newtag = preg_replace ("/ $/", "", $tag); # and end