var ss= "<pre>aaaa\nbbb\nccc</pre>ddd";
var arr= ss.match( /<pre.*?<\/pre>/gm );
alert(arr); // null
मैं चाहता हूं कि PRE ब्लॉक को उठाया जाए, भले ही यह newline वर्णों पर फैला हो। मुझे लगा कि 'एम' झंडा ऐसा करता है। नहीं करता।
पोस्ट करने से पहले यहाँ जवाब मिला । मैंने सोचा था कि मैं जावास्क्रिप्ट जानता था (तीन किताबें पढ़ी, घंटों काम किया) और एसओ में कोई मौजूदा समाधान नहीं था, मैं वैसे भी पोस्ट करने की हिम्मत करूंगा। यहाँ पत्थर फेंको
तो समाधान है:
var ss= "<pre>aaaa\nbbb\nccc</pre>ddd";
var arr= ss.match( /<pre[\s\S]*?<\/pre>/gm );
alert(arr); // <pre>...</pre> :)
क्या किसी के पास कम गूढ़ तरीका है?
संपादित करें: यह एक डुप्लिकेट है, लेकिन चूंकि यह मेरी तुलना में कठिन है, इसलिए मैं नहीं हटाता।
यह [^]एक "मल्टीलाइन डॉट" के रूप में प्रस्तावित करता है। मुझे अभी भी समझ नहीं आ रहा है कि [.\n]काम क्यों नहीं होता है। लगता है कि यह जावास्क्रिप्ट के उदास भागों में से एक है ..