2013-03-06 4 views

उत्तर

19

आपको ? का उपयोग करके मिलान करने वाले आलसी बनाना चाहिए।

उपयोग:

"-dhello;-egoodbye;-lcul8r" -replace "-d.*?;","-dbonjour;" 
+0

बिल्कुल वही जो मैं खोज रहा था, धन्यवाद! – muhmud

4

हमेशा स्पष्ट होना। .* सब कुछ यह कर सकते हैं से मेल खाता है (अर्धविराम सहित और जो कुछ इस प्रकार है), लेकिन आप केवल तो बस regex इंजन बता अगले अर्धविराम जब तक मिलान करना चाहते हैं, कि:

"-dhello;-egoodbye;-lcul8r" -replace "-d[^;]*;","-dbonjour;" 

[^;] मैचों किसी भी चरित्र को छोड़कर अर्धविराम।

+0

हालांकि यह इस मामले में काम करता है, यह सिर्फ एक उदाहरण था। मैं वास्तव में लालच को बंद करने के लिए एक स्विच की तलाश में था। लेकिन, धन्यवाद, यह अभी भी उपयोगी सलाह है। – muhmud

+0

@muhmud: ज़रूर। मैं सिर्फ यह कहना चाहता था कि असभ्यता का मतलब "सबसे छोटा संभव मैच" नहीं है। आपको वह मिलता है जब आप निर्दिष्ट करते हैं कि मिलान सामग्री क्या हो सकती है। उदाहरण के लिए '<.*?>' '' ' बम>" से मेल खाएगा। –

संबंधित मुद्दे