आप स्पष्ट रूप से लाइन सीमांकक मिलान करने के लिए यदि आप चाहते हैं की आवश्यकता होगी कई लाइनों से मेल खाते हैं। \ R किसी भी (प्लेटफॉर्म-स्वतंत्र) से मेल खाता है, ग्रहण 3.4 में वैसे भी, या आप अपनी फ़ाइल (\ r, \ n, \ r \ n) के लिए उचित उपयोग कर सकते हैं। जैसे \?.*\R*.*:
काम करेगा यदि केवल एक लाइन ब्रेक है। आप किसी चरित्र वर्ग में \ R का उपयोग नहीं कर सकते हैं, हालांकि, यदि आप नहीं जानते कि ऑपरेटर कितनी लाइनें फैल सकता है, तो आपको अपनी लाइन डिलीमीटर और किसी भी चरित्र के साथ एक वर्ण वर्ग बनाना होगा जो किसी में दिखाई दे सकता है संकार्य। कुछ ([-\r\n\w\s\[\](){}=!/%*+&^|."']*)\?([-\r\n\w\s\[\](){}=!/%*+&^|."']*):([-\r\n\w\s\[\](){}=!/%*+&^|."']*)
की तरह। मैंने ऑपरेंड को समूह के रूप में कैप्चर करने के लिए ब्रांड्स शामिल किए हैं ताकि आप ढूंढ सकें और प्रतिस्थापित कर सकें।
आपको एक बहुत बड़ी समस्या मिली है, हालांकि, यदि यह जावा है (और शायद कोई अन्य भाषा)। टर्नरी सशर्त?: ऑपरेटर एक अभिव्यक्ति बनाता है, जबकि एक अगर कथन अभिव्यक्ति नहीं है। विचार करें:
boolean even = true;
int foo = even ? 2 : 3;
int bar = if (even) 2 else 3;
तीसरी पंक्ति वाक्य रचनात्मक रूप से गलत है; दो सशर्त संरचना बराबर नहीं हैं। (यदि आप मेरे रेगेक्स को खोजने और बदलने के लिए वास्तव में दूसरी पंक्ति से प्राप्त करते हैं तो if (int foo = even) 2 else 3;
है जिसमें अतिरिक्त समस्याएं हैं।)
तो, आप उपरोक्त रेगेक्स के साथ ऑपरेटरों को ढूंढ सकते हैं (या कुछ समान; हो सकता है कि मैंने कक्षा में शामिल करने के लिए आपको कुछ पात्रों को याद किया हो), लेकिन आप उन्हें 'if' कथन के साथ प्रतिस्थापित करने में सक्षम नहीं होंगे।
स्रोत
2009-06-15 09:33:37
क्या यह ग्रोवी में है? यदि ऐसा है, तो आप वास्तव में मदद करेंगे अगर आप ऐसा कहेंगे। (यह वास्तव में जावा में सशर्त ऑपरेटर, btw है -।। "त्रिगुट" बस का वर्णन करता है यह कितने ऑपरेंड है यह * एक * त्रिगुट ऑपरेटर, और वर्तमान में केवल एक ही है, लेकिन इसके नाम सशर्त ऑपरेटर है) –
जॉन स्कीट एल्विस है। – abmv
ग्रोवी संदर्भ को देखते हुए, यह बाइनरी ऑपरेटर के मूल्य को कॉल करता है:? मूल्य 'एल्विस ऑपरेटर, और टर्नरी ऑपरेटर' बूलियन? मान: मान 'ए' पारंपरिक टर्नरी ऑपरेटर "। आप एल्विस ऑपरेटर, या एक सशर्त ऑपरेटर बारे में बात कर रहे हैं? यदि यह एल्विस ऑपरेटर है, तो आप केवल "?:" –