Regular Expressions
Regex क्या है
Regular expression (regex) text match करने का एक pattern है। characters एक-एक जाँचने के बजाय, आप चाहा आकार बताते हैं — "सिर्फ़ digits", "A से शुरू", "email format" — और PHP मेल खाता text ढूँढ या बदल देती है। यह validation और search-and-replace के लिए शक्तिशाली है।
/pattern/। case-insensitive को बाद में i जोड़िए।जाँचने को preg_match
<?php
$pin = "1234";
if (preg_match('/^\d{4}$/', $pin)) {
echo "Valid 4-digit PIN";
} else {
echo "Invalid";
}
?>
Pattern /^\d{4}$/ का मतलब: शुरू, ठीक 4 digits, अंत। preg_match 1 लौटाता है अगर पूरी string फ़िट हो — format checks के लिए बढ़िया।
आम pattern symbols
| Symbol | मतलब |
|---|---|
| \d | कोई digit (0-9) |
| \w | Letter, digit या underscore |
| . | कोई एक character |
| + | पिछले का एक या ज़्यादा |
| {4} | पिछले के ठीक 4 |
| ^ और $ | string की शुरुआत और अंत |
बदलने को preg_replace
<?php
$text = "Call 98765 or 12345";
// हर digit समूह को # से बदलें
echo preg_replace('/\d+/', '#', $text);
?>
preg_replace pattern से मेल खाते हर हिस्से को नए text से बदल देता है। यहाँ digits का हर समूह # बन जाता है — text mask या साफ़ करने को काम का।
preg_match_all
सिर्फ़ पहला नहीं, हर match पाने को preg_match_all इस्तेमाल कीजिए।
<?php
$text = "Order 12 and 34 and 56";
preg_match_all('/\d+/', $text, $matches);
print_r($matches[0]);
?>
सारे numbers $matches[0] में इकट्ठा होते हैं। इसे तब इस्तेमाल कीजिए जब string में कई चीज़ें हों जो आप निकालना चाहें।
आम गलतियाँ
- Delimiters भूलना। Pattern लपेटा होना चाहिए, जैसे
/\d+/, सिर्फ़\d+नहीं। - ^ और $ छूटना। इनके बिना partial match पास हो जाता है; पूरी string जाँचने को दोनों जोड़िए।
- Email के लिए regex लिखना। Email को
filter_varइस्तेमाल कीजिए — ज़्यादा भरोसेमंद। - Special characters escape न करना। असली dot match करने को
\.लिखिए, क्योंकि.का मतलब कोई भी character है।
सारांश
- Regex text match या बदलने का pattern है।
preg_matchजाँचता है text pattern से मेल खाता है (1/0 लौटाता है)।preg_replaceमेल खाता text नए से बदलता है।preg_match_allहर match इकट्ठा करता है।- Patterns को delimiters में लपेटिए और पूरी-string जाँच को
^/$इस्तेमाल कीजिए।
आगे, input validate कीजिए form validation से, या strings साफ़ कीजिए PHP string functions से।
अक्सर पूछे जाने वाले प्रश्न (FAQ)
PHP में regular expression क्या है?
preg_match और preg_replace जैसे functions इस्तेमाल करती है।preg_match क्या लौटाता है?
preg_match pattern मिलने पर 1, न मिलने पर 0, और error पर false लौटाता है। यह जाँचने को इस्तेमाल होता है कि text किसी pattern से मेल खाता है, जैसे format validate करना।Patterns को /.../ जैसे slashes में क्यों लपेटते हैं?
/^\d+$/। closing slash के बाद कुछ भी flag हो सकता है, जैसे case-insensitive matching को i।preg_match और preg_match_all में क्या अंतर है?
preg_match पहले match पर रुक जाता है। preg_match_all string में हर match ढूँढकर सब इकट्ठा करता है। एक से ज़्यादा result की उम्मीद हो तो "all" version इस्तेमाल कीजिए।क्या email validate करने को regex इस्तेमाल करूँ?
filter_var($email, FILTER_VALIDATE_EMAIL) हाथ से लिखे regex से ज़्यादा भरोसेमंद है। PIN code या username format जैसे सरल custom patterns के लिए regex इस्तेमाल कीजिए।