2010-09-11 21 views
14

क्या रेगेक्स मैच केवल टेक्स्ट की पहली पंक्ति बनाना संभव है? तो अगर मैं पाठ है:रेगेक्स केवल पहली पंक्ति से मेल खाता है?

यह पहली पंक्ति है।
यह दूसरी पंक्ति है। ...

यह "यह पहली पंक्ति है" से मेल खाएगा, जो भी पहली पंक्ति है।

+0

रेगेक्स का उपयोग कर कई प्रकार के रेगेक्स और प्रौद्योगिकियां हैं; कृपया अपने टैग में प्रासंगिक निर्दिष्ट करें। – Jay

उत्तर

16

है कि अधिक filehandle बफर के लिए एक नौकरी की तरह लगता है।

आप के साथ पहली पंक्ति मिलान करने के लिए सक्षम होना चाहिए:

/^(.*)$/m 

/m संशोधक बनाता ^ और $ मैच एम्बेडेड नई-पंक्तियों (हमेशा की तरह, इस PCRE वाक्य रचना है)। चूंकि /g संशोधक नहीं है, यह केवल पहली घटना को संसाधित करेगा, जो पहली पंक्ति है, और फिर रुकें।

आप एक खोल, उपयोग उपयोग कर रहे हैं:

head -n1 file 

या एक फिल्टर के रूप:

commandmakingoutput | head -n1 

अपने प्रश्न को स्पष्ट करें, मामले में इस वाट नहीं है आप देख रहे हैं ।

+0

ओनिगुरुमा सिंटैक्स में मैं वही काम कैसे करूं? – Priyatham

+0

चाल है, धन्यवाद! –

14

हाँ, आप कर सकते हैं। जावास्क्रिप्ट में

उदाहरण:

"This is the first line.\n This is the second line.".match(/^.*$/m)[0]; 

रिटर्न

"This is the first line." 

संपादित

के बारे में बताएं regex:

match(/^.*$/m)[0]

  • ^: लाइन
  • .* के शुरू: (।) किसी भी चार, 0 या अधिक बार (*)
  • $: पंक्ति के अंत।
  • m: बहु मोड
  • [0] (। एक \ N भी तरह कार्य करता है): परिणाम
+0

मुझे विश्वास नहीं है कि वह यही देख रहा है ... – polemon

+0

@ पोलेमन: हाँ, तुम सही हो ... मैंने अपना जवाब बदल दिया। – Topera

7

मामले में की सरणी के पहले स्थान प्राप्त आप कोई बात नहीं क्या, ये रहा पहले ही लाइन की जरूरत है:

\A.* 

यह पहली पंक्ति का चयन करेगा, इससे कोई फर्क नहीं पड़ता।

+0

यह सबसे आसान है, अगर कोई परवाह करता है तो सब्लिमे टेक्स्ट 3 में काम करता है। –

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