"foo\r\nbar".replace(/(foo).+/m, "bar")
हैलो। मैं नहीं समझ सकता क्यों इस कोड पट्टी पर foo को प्रतिस्थापित नहीं करताजावास्क्रिप्ट मल्टीलाइन regexp
"foo\r\nbar".replace(/(foo).+/m, "bar")
हैलो। मैं नहीं समझ सकता क्यों इस कोड पट्टी पर foo को प्रतिस्थापित नहीं करताजावास्क्रिप्ट मल्टीलाइन regexp
मैं नहीं समझ सकता क्यों इस कोड बार
पर foo को प्रतिस्थापित नहीं करता क्योंकि डॉट .
स्पष्ट नहीं मैच न्यू लाइन पात्रों करता है ।
यह काम करेगा:
"foo\r\nbar".replace(/foo[\s\S]+/m, "bar")
क्योंकि न्यू लाइन वर्ण श्वेत रिक्ति (\s
) के रूप में गिनती।
ध्यान दें कि foo
के आसपास कोष्ठक अनिवार्य हैं, समूह के पास कोई लाभ नहीं है।
जावास्क्रिप्ट एक डॉट-सभी संशोधक का समर्थन नहीं करता है। एक आम प्रतिस्थापन है:
"foo\r\nbar".replace(/(foo)[\s\S]+/, "bar")
/m
सही ढंग से करता है ^
और $
व्यवहार, लेकिन .
पर असर नहीं हुआ है।
ग्रेट। धन्यवाद –
धन्यवाद, मुझे नहीं पता था। रूबी में यह डिफ़ॉल्ट रूप से करता है। –
नहीं, यह नहीं करता है। ;) (Http://rubular.com/ पर अपने लिए परीक्षण करें) – Tomalak
'[\ s \ S]' '(?:। | \ S)' से बेहतर कामकाज है; कारण के लिए इस प्रश्न का एरिक कॉरी का जवाब देखें: http://stackoverflow.com/questions/2407870/javascript-regex-hangs-using-v8 –