/ / Regex का उपयोग करके "=" से पहले नहीं होने वाले शब्द से कैसे मिलान करें? - माणिक, रेगेक्स, लुकबाइंड

Regex का उपयोग करके "=" से पहले किसी शब्द से मिलान कैसे करें? - रूबी, रेगेक्स, देखो

मैं रूबी में फोरट्रान कोड से प्रतीक निकालना चाहूंगा। प्रतीकों में निम्नलिखित पैटर्न होंगे (नोट: चर प्रकार और विशेषता भागों को फ़िल्टर किया गया है):

a = b, c(2)       ! Match result should be "a" and "c"
d(3) = [1,2, &    ! Match result should be "d"
3]

रेगेक्स जो मैंने कोशिश की है ((?<!=)w+(?![^[]*]+)(?=( |,|(|$))) साथ में lookaround सामान। लेकिन के प्रतिबंध के कारण lookbehind, मैं बाहर करने के लिए "= *" से मेल नहीं खा सकता b.

मैंने परीक्षण के लिए रुबुलर का उपयोग किया। अपनी सुविधा के लिए, देखें यहाँ.

अग्रिम में धन्यवाद!

उत्तर:

जवाब के लिए 2 № 1

अपने regex काम करने के लिए आप पहले सभी अनुगामी व्हाट्सएप को बदल सकते हैं =

.gsub(/=s+/, "=").scan(/((?<!=)w+(?![^[]*]+)(?=( |,|(|$)))/)

जवाब के लिए 0 № 2

एक आसान चीज जो आप कर सकते हैं, वह दो ("=" पर) लाइन को विभाजित करता है और केवल अपने ऑपरगे को बाएं ऑपरेंड पर करता है।

इस तरह से आपको कोई जटिल रेक्सक्स नहीं लिखना है।


जवाब के लिए 0 № 3

मेरी सलाह होगी कि आप अपने रेगेक्स को 2 अभिव्यक्तियों में अलग करें। रेगेक्स नीडेन "टी हमेशा वन-लाइनर हो।