संदर्भ - इस रेगेक्स का क्या अर्थ है?
यह क्या है?
यह आम प्रश्नोत्तर का संग्रह है। यह एक सामुदायिक विकी भी है, इसलिए सभी को इसे बनाए रखने में भाग लेने के लिए आमंत्रित किया जाता है।
ऐसा क्यों है?
regex मुझे ze कोड प्रकार के प्रश्न और बिना किसी स्पष्टीकरण के खराब उत्तर देने से पीड़ित है । यह संदर्भ गुणवत्ता Q & A के लिंक प्रदान करने के लिए है।
क्या स्कोप है?
यह संदर्भ निम्नलिखित भाषाओं के लिए है: php , perl , javascript , python , ruby , java , .net ।
यह बहुत व्यापक हो सकता है, लेकिन ये भाषाएँ एक ही वाक्यविन्यास साझा करती हैं। विशिष्ट सुविधाओं के लिए इसके पीछे की भाषा का टैग है, उदाहरण:
- नियमित अभिव्यक्ति संतुलन समूह क्या हैं? .net
जवाब
स्टैक ओवरफ्लो रेगुलर एक्सप्रेशंस एफएक्यू
रेगेक्स टैग विवरण पृष्ठ पर कई सामान्य संकेत और उपयोगी लिंक भी देखें ।
ऑनलाइन ट्यूटोरियल
परिमाणकों
- शून्य या अधिक:
*
: लालची ,*?
: अनिच्छुक ,*+
: अधिकार - एक-या-अधिक:
+
: लालची ,+?
: अनिच्छुक ,++
: अधिकार ?
: वैकल्पिक (शून्य-या-एक)- न्यूनतम / अधिकतम पर्वतमाला (सभी समावेशी):
{n,m}
: के बीच एन एंड एम ,{n,}
: n या अधिक ,{n}
: बिल्कुल n - लालची, अनिच्छुक (उर्फ "आलसी", "लालची") और अधिकारपूर्ण मात्रा के बीच अंतर:
चरित्र वर्ग
- वर्ग कोष्ठक और कोष्ठक के बीच अंतर क्या है?
[...]
: कोई भी एक चरित्र[^...]
: नकारात्मक / कोई भी चरित्र लेकिन[^]
newlines जावास्क्रिप्ट सहित किसी भी एक चरित्र से मेल खाता है[\w-[\d]]
/[a-z-[qz]]
: सेट घटाव .net , xml- स्कीमा , xpath , JGSoft[\w&&[^\d]]
: प्रतिच्छेदन जावा , रूबी 1.9+ सेट करें[[:alpha:]]
: POSIX चरित्र वर्ग- क्यों करते हैं
[^\\D2]
,[^[^0-9]2]
,[^2[^0-9]]
जावा में अलग अलग परिणाम प्राप्त? जावा - आशुलिपि:
- अंकों:
\d
: अंकों ,\D
: गैर-अंक - वर्ड वर्ण (अक्षर, अंकों, अंडरस्कोर):
\w
: शब्द चरित्र ,\W
: गैर शब्द चरित्र - श्वेत रिक्ति:
\s
: खाली स्थान के ,\S
: गैर-सफ़ेद
- अंकों:
- यूनिकोड श्रेणियां (
\p{L}, \P{L}
आदि)
बच अनुक्रम
- क्षैतिज खाली स्थान के:
\h
: अंतरिक्ष या टैब ,\t
: टैब - नई पंक्तियां:
- नकारात्मक व्हाट्सएप अनुक्रम::
\H
गैर क्षैतिज व्हाट्सएप चरित्र\V
: गैर ऊर्ध्वाधर व्हाट्सएप चरित्र\N
: गैर लाइन फीड वर्ण pcre php5 java-8 - अन्य:
\v
: ऊर्ध्वाधर टैब ,\e
: एस्केप वर्ण
लंगर
^
: लाइन / इनपुट के शुरू ,\b
: शब्द सीमा, और\B
गैर शब्द सीमा: ,$
: लाइन / इनपुट के अंत\A
: इनपुट की शुरुआत\Z
: इनपुट php , पर्ल , रूबी का अंत\z
: इनपुट के बहुत अंत (\Z
अजगर में) .net , php , PCRE , जावा , रूबी , आईसीयू , तेज , उद्देश्य-सी\G
: मैच php , पर्ल , रूबी की शुरुआत
("स्वाद-विशिष्ट जानकारी → जावा → में कार्य Matcher
" भी देखें)
समूह
(...)
: कैप्चर समूह ,(?:)
: गैर कैप्चर समूह\1
: backreference और कैप्चर-समूह संदर्भ$1
: कैप्चर समूह संदर्भ- एक सबपैटर्न का क्या
(?i:regex)
अर्थ है? - 'P' का
(?P<group_name>regexp)
अर्थ क्या है? (?>)
: परमाणु समूह या स्वतंत्र समूह ,(?|)
: शाखा रीसेट- नामित कैप्चर समूह:
- जनरल नाम कैप्चरिंग ग्रुप रेफरेंस एट एट
regular-expressions.info
- जावा :
(?<groupname>regex)
: अवलोकन और नामकरण नियम (गैर-स्टैक ओवरफ़्लो लिंक) - अन्य भाषाओं: अजगर , .net , पर्ल , और php
(?P<groupname>regex)
(?<groupname>regex)
(?<groupname>regex)
(?P<groupname>regex)
(?<groupname>regex)
- जनरल नाम कैप्चरिंग ग्रुप रेफरेंस एट एट
Lookarounds
- Lookaheads:
(?=...)
: सकारात्मक ,(?!...)
: नकारात्मक - Lookbehinds:
(?<=...)
: सकारात्मक ,(?<!...)
: नकारात्मक (द्वारा समर्थित नहीं जावास्क्रिप्ट ) - निम्न सीमाएँ:
- विकल्प देखें:
संशोधक
- अधिकांश जायके:
g
: वैश्विक ,i
: केस-संवेदी ,u
: यूनिकोड ,x
: खाली स्थान के-बढ़ाया c
: वर्तमान स्थिति पर्लe
: अभिव्यक्ति php पर्लo
: एक बार रूबीm
: बहु php पर्ल अजगर जावास्क्रिप्ट .net जावा ,m
: (गैर) बहु माणिकs
: सिंगल लाइन ( जावास्क्रिप्ट या माणिक द्वारा समर्थित नहीं ),s
वर्कअराउंड जावास्क्रिप्टS
: अध्ययन phpU
: ungreedy php r- Preg_replace e को preg_replace_callback में कैसे बदलें?
- इनलाइन संशोधक क्या हैं?
- रूबी रेगुलर एक्सप्रेशन में '-mix' क्या है?
अन्य:
|
: प्रत्यावर्तन (या) ऑपरेटर ,.
: किसी भी चरित्र ,[.]
: शाब्दिक डॉट चरित्र- किन खास किरदारों से बचना चाहिए?
- नियंत्रण क्रियायें ( php और पर्ल ):
(*PRUNE)
,(*SKIP)
,(*FAIL)
और(*F)
- केवल php :
(*BSR_ANYCRLF)
- केवल php :
- प्रत्यावर्तन ( php और पर्ल ):
(?R)
,(?0)
और(?1)
,(?-1)
,(?&groupname)
आम कार्य
- दो घुंघराले ब्रेसिज़ के बीच एक स्ट्रिंग प्राप्त करें:
{...}
- S1, s2, s3 को छोड़कर किसी पैटर्न को मिलाएं (या बदलें) ...
- मैं एक regex का उपयोग करके स्ट्रिंग में सभी YouTube वीडियो आईडी कैसे खोजूं?
- मान्यता:
- इंटरनेट: ईमेल पते , URL (होस्ट / पोर्ट: regex और गैर- regex विकल्प), पासवर्ड
- न्यूमेरिक: एक संख्या , न्यूनतम-अधिकतम श्रेणियां (जैसे 1-31) , फ़ोन नंबर , दिनांक
- Regex के साथ HTML पार्स करना: "सामान्य जानकारी> देखें जब Regex का उपयोग न करें"
उन्नत रेगेक्स-फू
- तार और संख्या:
- एक पंक्ति से मेल खाने के लिए नियमित अभिव्यक्ति जिसमें एक शब्द नहीं है
- यह पीसीआरई पैटर्न पैलिंड्रोम्स का पता कैसे लगाता है?
- मिलान तार जिसकी लंबाई एक चौथी शक्ति है
- इस रेगेक्स को त्रिकोणीय संख्याएं कैसे मिलती हैं?
- यह कैसे निर्धारित किया जाए कि कोई संख्या regex के साथ अभाज्य है?
- रेगेक्स के साथ एक स्ट्रिंग में मध्य चरित्र का मिलान कैसे करें?
- अन्य:
- हम जावा रेगेक्स के साथ ^ nb ^ n का मिलान कैसे कर सकते हैं?
- नेस्टेड कोष्ठक से मिलान करें
- ASCII "छवि" में "वर्टिकल" रेगेक्स मिलान
- कोड गोल्फ पर अत्यधिक मतदान वाले रेगेक्स प्रश्नों की सूची
- दो बार की मात्राओं को एक ही बार में कैसे करें?
- एक असंभव मैच नियमित अभिव्यक्ति:
(?!a)a
this
संदर्भ ए, बी और सी को छोड़कर मैच / हटाएं / बदलें- पुनरावर्ती या संतुलन समूहों का उपयोग किए बिना रेगेक्स के साथ नेस्टेड कोष्ठक का मिलान करें?
स्वाद-विशिष्ट जानकारी
(इसके साथ चिह्नित लोगों को छोड़कर *
, इस अनुभाग में गैर-स्टैक ओवरफ़्लो लिंक शामिल हैं।)
- जावा
- आधिकारिक दस्तावेज: पैटर्न Javadoc , ओरेकल की नियमित अभिव्यक्ति ट्यूटोरियल
- कार्यों के बीच अंतर
java.util.regex.Matcher
:matches()
): मैच को इनपुट-स्टार्ट और -end दोनों के लिए एंकर किया जाना चाहिएfind()
): इनपुट स्ट्रिंग (सबस्ट्रिंग) में कहीं भी मैच हो सकता हैlookingAt()
: मैच को केवल इनपुट-स्टार्ट के लिए एंकर किया जाना चाहिए- (सामान्य रूप से लंगर के लिए, खंड "एंकर" देखें)
- केवल
java.lang.String
कार्यों कि रेगुलर एक्सप्रेशन स्वीकार:matches(s)
,replaceAll(s,s)
,replaceFirst(s,s)
,split(s)
,split(s,i)
- * में और अनुपस्थित सुविधाओं के नुकसान की विस्तृत (विस्तृत और विस्तृत) चर्चा
java.util.regex
- नेट
- आधिकारिक दस्तावेज:
- बूस्ट रेगेक्स इंजन: जनरल सिंटैक्स , पर्ल सिंटैक्स (टेक्स्टपैड, सब्बल टेक्स्ट, अल्ट्राएडिट ... द्वारा उपयोग किया जाता है ... ???)
- जावास्क्रिप्ट 1.5 सामान्य जानकारी और RegExp ऑब्जेक्ट
- .NET
- PHP: पैटर्न वाक्यविन्यास ,
preg_match
- पायथन: नियमित अभिव्यक्ति संचालन ,
search
बनामmatch
, कैसे-कैसे - स्पंक: रेगेक्स शब्दावली और सिंटैक्स और रेगेक्स कमांड
- Tcl: regex सिंटैक्स , मैनपेज ,
regexp
कमांड - दृश्य स्टूडियो ढूँढें और बदलें
सामान्य जानकारी
(लिंक *
गैर-ढेर अतिप्रवाह लिंक के साथ चिह्नित हैं।)
- अन्य सामान्य दस्तावेज़ीकरण संसाधन: लर्निंग रेगुलर एक्सप्रेशंस , * Regular-expressions.info , * विकिपीडिया प्रविष्टि , * RexEgg , ओपन-डायरेक्ट्री प्रोजेक्ट
- डीएफए बनाम एनएफए
- रेगेक्स से मेल खाते स्ट्रिंग्स बनाना
- पुस्तकें: जेफरी फ्रीडल की मास्टरींग रेगुलर एक्सप्रेशंस
- जब नियमित अभिव्यक्ति का उपयोग नहीं करना है:
- कुछ लोग, जब एक समस्या का सामना करते हैं, तो सोचते हैं "मुझे पता है, मैं नियमित अभिव्यक्ति का उपयोग करूंगा।" अब उन्हें दो समस्याएं हैं। ( स्टैक ओवरफ्लो के संस्थापकद्वारा लिखित ब्लॉग पोस्ट) *
- HTML को पार्स करने के लिए regex का उपयोग न करें:
- नहीं है ।
- ठीक है, हो सकता है ... यदि आप वास्तव में दृढ़ हैं (इस प्रश्न के अन्य उत्तर भी अच्छे हैं)
- नहीं है ।
रेगेक्स के उदाहरण जो रेगेक्स इंजन को विफल कर सकते हैं
उपकरण: परीक्षक और स्पष्टीकरण
(इस सेक्शन में नॉन-स्टैक ओवरफ्लो लिंक हैं।)
ऑनलाइन (* रिप्लेसमेंट टेस्टर शामिल हैं, + स्प्लिट टेस्टर शामिल हैं) :
- डीबगेज (इसके पास उपयोगी रेगीज़ का भंडार भी है) जावास्क्रिप्ट , अजगर , क्लेयर
- * रेगुलर एक्सप्रेशंस 101 php , pcre , python , javascript
- रेगेक्स पाल , नियमित-expressions.info जावास्क्रिप्ट
- Rubular माणिक
- * + regexstorm.net .net
- * RegexPlanet: जावा जावा , जाओ जाओ , हास्केल Haskell , जावास्क्रिप्ट जावास्क्रिप्ट , .नेट डॉटनैट , पर्ल पर्ल php PCRE php , अजगर अजगर , रूबी रूबी , XRegExp xregexp
freeformatter.com
xregexp- * + php PCRE और POSIX, जावास्क्रिप्ट
regex.larsolavtorvik.com
- रिफ़ेल्ड जावास्क्रिप्ट रूबी .net
ऑफ़लाइन:
- Microsoft Windows: RegexBuddy (विश्लेषण), RegexMagic (निर्माण), Expresso (विश्लेषण, निर्माण, मुक्त)