หากคุณกำลังมองหาที่ว่างนั่นก็คือ" "(หนึ่งช่องว่าง)
หากคุณกำลังมองหาหนึ่งหรือมากกว่านั้นก็คือ"  *"(นั่นคือสองช่องว่างและเครื่องหมายดอกจัน) หรือ" +"(หนึ่งช่องว่างและเครื่องหมายบวก)
หากคุณกำลังมองหาช่องว่างทั่วไปให้ใช้"[ X]"หรือ"[ X][ X]*"หรือ"[ X]+"ที่Xตัวละครแท็บทางกายภาพ (และแต่ละคนจะนำหน้าด้วยช่องว่างเดียวในตัวอย่างเหล่านั้นทั้งหมด)
สิ่งเหล่านี้จะใช้ได้กับเอ็นจิ้น * regex ทุกตัวที่ฉันเคยเห็น (บางอันไม่มีแม้แต่"+"ตัวละครหนึ่งตัวหรือมากกว่า)
หากคุณรู้ว่าคุณกำลังใช้หนึ่งในเครื่องมือ regex ที่ทันสมัยกว่า"\s"และรูปแบบต่าง ๆ เป็นวิธีที่จะไป นอกจากนี้ฉันเชื่อว่าขอบเขตของคำตรงกับจุดเริ่มต้นและจุดสิ้นสุดของบรรทัดเช่นกันสิ่งสำคัญเมื่อคุณกำลังมองหาคำที่อาจปรากฏขึ้นโดยไม่ต้องเว้นวรรคก่อนหรือตามหลัง
สำหรับ PHP โดยเฉพาะหน้านี้อาจช่วยได้
จากการแก้ไขของคุณดูเหมือนว่าคุณต้องการลบอักขระที่ไม่ถูกต้องทั้งหมดจุดเริ่มต้นของสิ่งนี้คือ (สังเกตพื้นที่ภายใน regex):
$newtag = preg_replace ("/[^a-zA-Z0-9 ]/", "", $tag);
#                                    ^ space here
หากคุณต้องการใช้กลอุบายเพื่อให้แน่ใจว่ามีเพียงช่องว่างระหว่างแต่ละคำกับไม่มีในตอนเริ่มต้นและสิ้นสุดนั่นเป็นเรื่องที่ซับซ้อนกว่าเล็กน้อย (และอาจเป็นคำถามอื่น) แต่แนวคิดพื้นฐานน่าจะเป็น:
$newtag = preg_replace ("/ +/", " ", $tag); # convert all multispaces to space
$newtag = preg_replace ("/^ /", "", $tag);  # remove space from start
$newtag = preg_replace ("/ $/", "", $tag);  # and end