टिप्पणियों की तरह, reading about regular expressions आपके लिए (लंबे समय तक) के लिए सबसे फायदेमंद होगा।
\B
यह बताता है (अर्थात यह शब्द का एक और प्रकार का हिस्सा नहीं हो सकता है एक शब्द सीमा के भीतर ही देखने के लिए - यह b123412b123
नहीं किया जा सकता है, लेकिन केवल: इस विशिष्ट नियमित अभिव्यक्ति का विश्लेषण करना जैसे है स्वीकार यह क्या पाता है अगर यह अकेला खड़ा - 123456
, a 123456 w
- फिर एक अग्रदर्शी
(?=
यह बताता है जो कुछ भी समूह में है (जब तक यह मिलान समापन कोष्ठक तक पहुँच जाता है) और केवल अगर यह एक पूरे के रूप में पाया जाता है लौटने लगता है, यह है यह भी सुनिश्चित करना कि प्रतिस्थापन रिवर्स में किया गया है क्योंकि यह स्ट्रिंग के अंत तक बहुत आगे की ओर देख रहा है।
?:
यह निम्नलिखित मैच देखने के लिए कहता है लेकिन बैकरेफर (नियमित अभिव्यक्तियों में एक शब्द) नहीं बनाते
\d{3}
एक पंक्ति में 3 अंक दिखता है।
- फिर
+
बाद में अंक मिलता है कि 3 अंक (यह सुनिश्चित करने के लिए कोष्ठक में लपेटा जाता है कि नियम को एक ब्लॉक के रूप में माना जाता है - (\d{3})+
) पैटर्न दोहराया जा सकता है (3 अंक, 6, 9, आदि)।
- पिछले
(?!\d)
लग रहा है अभी तक एक और अंकों लेकिन के लिए यह को छोड़कर, कि 3.
तो मूल रूप से इसके लिए लग रहा है
के समूह में नहीं हैं यकीन है कि अंक 3 और नहीं के समूहों संख्याएं आती हैं में हैं बनाने 3 अंकों के 1 या अधिक समूह, RegEx मिलान किए गए अंकों को वापस करने के लिए नहीं बताते हैं (क्योंकि उन्हें ?:
से अनदेखा किया जाता है) इसलिए केवल उस मैच का हिस्सा लौटा रहा है जो कुछ भी नहीं है - यह \B
लौटा रहा है, और यही बदल रहा है। तो प्रभावी ढंग से यह केवल स्ट्रिंग के अंत से शुरू होने वाले 3 के पूर्ण समूहों को प्रतिस्थापित करता है, जिससे 3333333
3,333,333
में बदल जाता है।
यह रेगेक्स है, यदि आप वास्तव में इस बारे में परवाह करते हैं तो आपको इसके बारे में अधिक जानना चाहिए। [यह एक अच्छी शुरुआत हो सकती है] (http://www.regular-expressions.info/) – musefan
यदि आप नियमित अभिव्यक्तियों की खोज करते हैं, और कुछ ट्यूटोरियल पढ़ते हैं, तो आप इसे कुछ घंटों में समझने में सक्षम होना चाहिए अधिकांश! – adeneo
सुझाव के लिए धन्यवाद, लेकिन सभी लोगों के पास ट्यूटोरियल पढ़ने के लिए पर्याप्त निष्क्रिय समय नहीं है। –