2010-08-03 10 views
12

मैं नेटबीन्स 6.9 के अंदर 'टेक्स्ट' के प्रकार के साथ सभी HTML इनपुट टैग खोजने की कोशिश कर रहा हूं।नेटबीन्स मल्टी-लाइन नियमित अभिव्यक्ति खोज

क्या नेटबीन नियमित रूप से अभिव्यक्तियों का उपयोग करके स्ट्रिंग के लिए खोज कर समर्थन करता है, जिसमें कई पंक्तियों में फैले विभिन्न खोज मानदंड होते हैं या यह केवल एक पंक्ति के भीतर काम करता है?

यह नियमित अभिव्यक्ति

<input.*type=['"]text['"].*/> 

काम करता है जब पूरे टैग और उसके गुण इस

<input name="data[something]" id="some_id" value="some_value" type="text" /> 

की तरह एक ही पंक्ति में लिखा लेकिन क्योंकि मैं कोड की लंबी लाइनें लिख से बचने और उन्हें तोड़ने के कर रहे हैं ऐसे

<input name="data[something]" id="some_id" 
     value="some_value" type="text" /> 

वही नियमित अभिव्यक्ति काम नहीं करती है।

क्या कोई तरीका प्राप्त किया जा सकता है?

उत्तर

20

डिफ़ॉल्ट रूप से, . मेटाएक्टेक्टर न्यूलाइन से मेल नहीं खाता है। "सिंगल-लाइन" या "डॉटल" या इसी तरह का एक विकल्प होना चाहिए, जो डॉट मैच प्रत्येक वर्ण को देता है। या आप regex की शुरुआत में (?s) जोड़ सकते हैं और केवल उस regex के लिए एक ही प्रभाव प्राप्त कर सकते हैं।

लेकिन .* को [^<>]* के साथ प्रतिस्थापित करना बेहतर होगा। डॉटल मोड में, .* पूरे दस्तावेज़ को गठबंधन करने का प्रयास करेगा, जिसके परिणामस्वरूप धीमी कार्यक्षमता और/या गलत मिलान होंगे, लेकिन [^<>]* टैग के अंत से अधिक मिलान करने की कोशिश नहीं करेगा।

वैसे, यदि आप सिंगल-कोट या डबल-कोट से मेल खाने के लिए ['|"] का उपयोग कर रहे हैं, तो | से छुटकारा पाएं। "या" एक वर्ण वर्ग में निहित है, इसलिए आपको केवल ['"] की आवश्यकता है (| बस एक शाब्दिक | से मेल खाएगा)।

+0

मुझे एक ही समस्या है और आपके उत्तर ने मेरी मदद की। लेकिन एक और समस्या दिखाई दी - मेरा regex लालची बनी हुई है। शुरुआत में "(? एस) के बारे में मैं और कहां पढ़ सकता हूं? क्या मैं अपने रेगेक्स को लालची बना सकता हूं? धन्यवाद! – Hnatt

+4

कोई बात नहीं, मुझे यह मिल गया है। '(। *)' - लालची, '(। *?)' - लालची। – Hnatt

+0

(एस) ने मैचों को खोजने में मदद की। (डॉट) में नई लाइन शामिल है, बहुत बहुत धन्यवाद! – user219628

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