दिलचस्प पोस्ट
पायथन पता पहले से उपयोग में है थ्रेड से रिटर्निंग वैल्यू किसी ऑब्जेक्ट के गुणों के आधार पर ऑब्जेक्ट की जावास्क्रिप्ट सरणी को क्रमबद्ध करें Vue: विभिन्न पृष्ठों के बीच साझा डेटा गलत mysql config के साथ रूट पासवर्ड रीसेट करें एंड्रॉइड एसक्लिट चयन एग्रीज़ इंट वैल्यू के साथ php दो सरणियों को मिलाएं गैर कैप्चरिंग समूह क्या है? प्रश्न चिह्न क्या एक बृहदान्त्र के बाद (? :) मतलब है? एक संशोधित प्रीर्डर ट्री ट्रवर्सल मॉडल (नेस्टेड सेट) को एक <ul> में लेना आईओ त्रुटि: नेटवर्क एडाप्टर कनेक्शन स्थापित नहीं कर सका क्या मैं दूसरे वर्ग में किसी गतिविधि का उद्देश्य बना सकता हूं? मेरे भविष्य का मूल्य अब क्यों उपलब्ध नहीं है? MVC बुरा में ViewBag का उपयोग कर रहा है? MySQL वक्तव्य उत्तेजना के लिए मिनट से ज्यादा लेता है यूआरएल पैरामीटर से बचें

रेजेक्स: एक चरित्र की पहली घटना से मिलान करना

मैं एक ऐसे पैटर्न की तलाश कर रहा हूं जो एक विशेष चरित्र की पहली घटना तक सब कुछ मेल खाता है, एक ";" – एक सेमीकोलन

मैंने यह लिखा:

/^(.*);/ 

लेकिन यह वास्तव में अर्धविराम की आखिरी घटना तक सब कुछ (अर्धविराम सहित) से मेल खाता है।

Solutions Collecting From Web of "रेजेक्स: एक चरित्र की पहली घटना से मिलान करना"

आप की जरूरत है

 /[^;]*/ 

[^;] एक चरित्र वर्ग है , यह सब कुछ मिलती है लेकिन एक अर्धविराम

perlre मैनपेज को उद्धृत करने के लिए:

आप [] में वर्णों की एक सूची को जोड़कर एक वर्ण वर्ग निर्दिष्ट कर सकते हैं, जो सूची से किसी भी वर्ण से मेल खाएगा। यदि "[" "" "के बाद पहला अक्षर है, तो क्लास किसी भी वर्ण को सूची में नहीं मेल खाता है।

यह सबसे अधिक regex बोलियों में काम करना चाहिए

होगा,

 /^(.*?);/ 

काम?

"?" एक आलसी ऑपरेटर है, इसलिए मिलान करने से पहले regex जितना संभव हो सके पकड़ता है;

/^[^;]*/

[^;] का कहना है कि अर्धविराम के अलावा कुछ भी मैच है स्क्वायर कोष्ठ एक सेट मिलान ऑपरेटर हैं, यह अनिवार्य रूप से, वर्णों के इस समूह के किसी भी चरित्र से मेल खाता है, प्रारंभ में ^ यह एक व्युत्क्रम मैच बना देता है, इस सेट में कुछ भी मैच करें।

कोशिश करो /[^;]*/

विवरण के लिए Google regex character classes

कोशिश करो /[^;]*/

यह एक नकारात्मक वर्ण वर्ग है

यह एक regex समाधान नहीं है, लेकिन आपकी समस्या विवरण के लिए पर्याप्त कुछ सरल है। बस अपनी स्ट्रिंग विभाजित करें और अपने ऐरेम से पहले आइटम प्राप्त करें।

 $str = "match everything until first ; blah ; blah end "; $s = explode(";",$str,2); print $s[0]; 

उत्पादन

 $ php test.php match everything until first 

नमूना पाठ:

 "this is a test sentence; to prove this regex; that is g;iven below" 

उदाहरण के लिए यदि हमारे ऊपर नमूना पाठ है, तो regex /(.*?\;)/ )/ आपको अर्धविराम सहित पहली बार अर्धविराम ( ; ) के पहले समय तक सब कुछ देगा: "this is a test sentence;"

यह मेरे लिए बहुत ही उपयोगी था क्योंकि मैं यह जानाने की कोशिश कर रहा था कि एक्सट्यूब सहित एक्सएमएल टैग में सभी पात्रों का मिलान कैसे किया जाए। मैं "आखिर तक सभी को मैच करता हूं" समस्या में चल रहा था:

 /<simpleChoice.*>/ 

लेकिन इस मुद्दे को हल करने में सक्षम था:

 /<simpleChoice[^>]*>/ 

इस पोस्ट को पढ़ने के बाद सबको शुक्रीया।

"/^([^\/]*)\/$/" मेरे लिए काम किया है, केवल शीर्ष "फ़ोल्डर्स" जैसे एक सरणी से प्राप्त करने के लिए:

 a/ <- this a/b/ c/ <- this c/d/ /d/e/ f/ <- this 

वाकई दुखी है कि कोई भी आपको सही जवाब नहीं दे रहा है ….

Regex में,? यह गैर लालची बनाता है डिफ़ॉल्ट रूप से regex जितना यह कर सकता है (लालची)

बस एक जोड़ सकते हैं? और यह गैर-लालची होगा और जितना संभव हो उतना मैच होगा!

शुभकामना, उम्मीद है कि मदद करता है

यह केवल प्रत्येक स्ट्रिंग में पहली घटना से मेल खाएगा और बाद की घटनाओं को अनदेखा करेगा।

 /^([^;]*);*/