How to Match Blank Characters and Whitespaces in Regex
Matching invisible elements like spaces, tabs, and line breaks is one of the most common tasks when writing regular expressions (regex). Whether you are cleaning up data, validating forms, or scraping information, knowing how to target a regex blank character precisely will save you hours of debugging.
1. Using the General Whitespace Metacharacter (\s)
The easiest and most common way to match a blank character in regex is with \s. This matches any whitespace character, including:
- A standard space character
- A horizontal tab (
\t) - A vertical tab (
\v) - A newline (
\n) or carriage return (\r) - A form feed (
\f)
Example pattern: hello\sworld will match "hello world", "hello world" (with tab), and "hello[newline]world".
2. Matching Only Horizontal Spaces (POSIX [[:blank:]])
If you only want to match spaces and tabs, but exclude newlines or line breaks, you should use horizontal space matchers:
- In PCRE, PHP, and Python (with
re), you can use\hto match horizontal whitespace. - In Unix tools, grep, and POSIX-compliant environments, use the character class
[[:blank:]]. This matches only spaces and tabs.
3. Matching Unicode Spaces (\p{Zs})
Modern applications deal with international characters, including special Unicode spaces (such as non-breaking spaces , thin spaces, and mathematical spaces). Standard metacharacters like \s might not match them depending on the programming language and flags.
To match any Unicode separator space, use the Unicode property category \p{Zs} (requires Unicode flag enabled in your regex engine, e.g., /pattern/u in JavaScript).
Language-Specific Quick Reference
- JavaScript: Use
/\s/for standard whitespace or/ /for a literal space. If matching Unicode spaces, use theuflag:/\p{Zs}/u. - Python: Use the
remodule withr'\s'. To match Unicode spaces, use the flagre.UNICODE(enabled by default in Python 3). - PCRE: Supports
\hfor horizontal spaces a⚡ Test and Validate Your Regex Instantly!
Paste your text strings and patterns to see highlighted matches in real-time. Completely private, offline-first execution.
Launch Regex Tester →Want to test your regular expressions instantly? Try our free, browser-based Regex Tester to experiment with patterns, see matches highlighted in real-time, and format your strings without sending any data to a remote server.
تعد مطابقة العناصر غير المرئية مثل المسافات وعلامات التبويب وفواصل الأسطر أحد أكثر المهام شيوعاً عند كتابة التعبيرات النمطية (Regex). سواء كنت تقوم بتنظيف البيانات أو التحقق من صحة النماذج أو استخراج المعلومات، فإن معرفة كيفية استهداف الأحرف الفارغة والمسافات في الـ regex بدقة ستوفر عليك ساعات من تصحيح الأخطاء.
1. استخدام التوصيف العام للمسافات البيضاء (\s)
الطريقة الأسهل والأكثر شيوعاً لمطابقة حرف فارغ في التعبير النمطي هي استخدام \s. يطابق هذا الرمز أي مسافة بيضاء، بما في ذلك:
- المسافة العادية (Space)
- علامة التبويب الأفقية (Tab -
\t) - علامة التبويب الرأسية (
\v) - السطر الجديد (Newline -
\n) أو رجوع أول السطر (\r) - فاصل الصفحات (
\f)
مثال: النمط hello\sworld سيطابق "hello world" أو "hello world" (بينها مسافة تبويب) أو "hello[سطر جديد]world".
2. مطابقة المسافات الأفقية فقط (POSIX [[:blank:]])
إذا كنت ترغب فقط في مطابقة المسافات وعلامات التبويب واستبعاد الأسطر الجديدة تماماً، فينبغي عليك استخدام مطابقات المسافة الأفقية:
- في محركات PCRE ولغة Python، يمكنك استخدام
\hلمطابقة المسافات الأفقية فقط. - في بيئات يونكس والأدوات المتوافقة مع POSIX، استخدم فئة الرموز
[[:blank:]]. يطابق هذا التعبير المسافات وعلامات التبويب فقط دون فواصل الأسطر.
3. مطابقة مسافات اليونيكود (\p{Zs})
تتعامل التطبيقات الحديثة مع محتوى بلغات متعددة، بما في ذلك مسافات يونيكود الخاصة (مثل المسافات غير القابلة للتقسيم والمسافات الرقيقة). قد لا تتمكن بعض الرموز الافتراضية مثل \s من مطابقتها حسب المحرك ولغة البرمجة المستخدمة.
لمطابقة أي مسافة يونيكود فاصلة، استخدم الخاصية \p{Zs} (تتطلب تفعيل خيار Unicode في محرك التعبيرات النمطية، مثل الخيار /pattern/u in JavaScript).
معرض للغات البرمجة وتطبيقاتها
- جافا سكريبت: استخدم
/\s/للمسافات البيضاء العامة أو مسافة كتابية عادية/ /. ولمطابقة مسافات اليونيكود استخدم رمز/\p{Zs}/uمع الخيارu. - بايثون: استخدم مكتبة
reمع النمطr'\s'. مطابقة مسافات يونيكود مفعلة تلقائياً في بايثون 3. - PCRE: يدعم الرمز
\hللمسافات الأفقية و\vللمسافات العمودية.
⚡ اختبر وتحقق من التعبيرات النمطية فوراً!
ألصق نصوصك وأنماط التعبيرات النمطية لمشاهدة مطابقة الأحرف ملونة مباشرة بالكامل بخصوصية تامة داخل جهازك.
تشغيل مختبر التعبيرات النمطية ←هل تريد اختبار تعبيراتك النمطية فوراً؟ جرب أداة مختبر التعبيرات النمطية المجانية التي تعمل بالكامل داخل المتصفح لتجربة الأنماط ورؤية النتائج مباشرة دون إرسال أي بيانات إلى خوادم خارجية.
\p{Zs} (تتطلب تفعيل خيار Unicode في محرك التعبيرات النمطية، مثل الخيار /pattern/u في JavaScript).
مرجع سريع للغات البرمجة
- جافا سكريبت: استخدم
/\s/للمسافات البيضاء العامة أو مسافة كتابية عادية/ /. ولمطابقة مسافات اليونيكود استخدم رمز/\p{Zs}/uمع الخيارu. - بايثون: استخدم مكتبة
reمع النمطr'\s'. مطابقة مسافات يونيكود مفعلة تلقائياً في بايثون 3. - PCRE: يدعم الرمز
\hللمسافات الأفقية و\vللمسافات العمودية.
هل تريد اختبار تعبيراتك النمطية فوراً؟ جرب أداة مختبر التعبيرات النمطية المجانية التي تعمل بالكامل داخل المتصفح لتجربة الأنماط ورؤية النتائج مباشرة دون إرسال أي بيانات إلى خوادم خارجية.