REGEX TESTER
$1 = group 1 ยท $& = poora match ยท $$ = literal $
| # | Match | Index | Length | Groups |
|---|
REGEX KYA HOTA HAI โ POORA GUIDE
Regular expression (ya regex) ek chhota sa pattern hai jo text me dhundne ka kaam karta hai. Ek hi pattern hazaron lines me se sirf wahi hissa uthata hai jo aapki shart poora karta hai โ aur wo shart itni simple ho sakti hai jitni "yahan se shuru ho" ya "sirf email address pakdo".
Sabse zyada use hone wale 12 symbols
| Symbol | Matlab | Example |
|---|---|---|
. | ek bhi character (newline ke alawa) | a.c โ "abc", "axc" |
\d | ek digit | \d{3} โ "302" |
\w | word character (letter, digit, underscore) | \w+ โ "hello_1" |
\s | koi bhi whitespace | a\s+b โ "a b" |
* | 0 ya zyada baar | ab*c โ "ac", "abc", "abbbc" |
+ | 1 ya zyada baar | ab+c โ "abc", "abbc" |
? | 0 ya 1 baar | ab?c โ "ac", "abc" |
{n} | exactly n baar | \d{6} โ PIN code |
[abc] | in me se koi ek | [aeiou] โ vowels |
[^abc] | in me se koi bhi nahi | [^0-9] โ non-digit |
| | ya (alternation) | cat|dog |
^ $ | line ki shuru aur khatam | ^\d{5}$ |
Capturing groups
Bracket se aap pattern ka koi hissa alag se pakad sakte ho, aur wo captured
group replacement me $1, $2 se wapas aa jaata hai. Date nikaalne
wala pattern dekhiye:
(\d{4})-(\d{2})-(\d{2}) โ yahan $1 saal, $2 mahina
aur $3 din hai. Ye teen hissa alag-alag columns me daalne ke liye
$1\t$2\t$3 likh kar replace karein.
Greedy vs Lazy โ sabse common galti
Quantifier by default greedy hota hai, yaani jitna ho sake utna
pakadta hai. Isliye <.+> HTML tag nikaalne me poori line kheench leta
hai. Usko lazy banane ke liye quantifier ke baad ek question mark lagayein:
<.+?>. Ab wo pehla closing angle bracket par ruk jaata hai.
Look-ahead aur look-behind
Kabhi aap match ko test karna chahte ho bina usse consume kiye. Iske liye
look-ahead hota hai: (?=...) aage dekhta hai, (?!...) aage
dekhta hai ki match nahi hona chahiye. Look-behind (?<=...) peeche
dekhta hai. Example: password me kam se kam 8 character aur ek number:
^(?=.*\d)(?=.*[a-z]).{8,}$ โ do look-ahead saath me lagte hain, dono
true hote hi baaki pattern chalega.
Inline flags aur named groups
Poore pattern me case-insensitivity chahiye to shuru me (?i) likh sakte ho,
sirf ek hisse me chahiye to (?i:...). Named groups syntax se padhne layak hote
hain โ JavaScript me (?<year>\d{4}) aur baad me groups.year.
Group ki position yaad rakhne se zyada naam yaad rakhna asaan hai.
Security note
Ek regex jo bahut zyada backtrack kare, jaise koi nested quantifier pattern, untrusted input par CPU pakad sakta hai โ isse ReDoS kehte hain. Agar aap user ka data apne server par regex chala kar validate kar rahe ho to pattern ko timeout ke saath chalaayein aur nested quantitators se bachein. Is tool me matching aapke browser me hoti hai, isliye yahan server ka koi risk nahi hai.