मैं नियमित रूप से अभिव्यक्तियों पर एक नौसिखिया हूं, इसलिए इस पर कुछ सहकर्मी प्रतिक्रिया की सराहना करेंगे। यह मेरी साइट पर भारी रूप से उपयोग किया जाएगा, इसलिए किसी भी अजीब किनारे के मामलों में पूरी तरह से विनाश हो सकता है। विचार पूरी इकाइयों या अंशों में एक नुस्खा में एक घटक की मात्रा में टाइप करना है। मेरे स्वत: पूर्ण तंत्र के कारण, केवल एक संख्या मान्य है (क्योंकि यह एक ड्रॉपडाउन पॉप अप करेगा)। ये लाइनें मान्य हैं:इस नियमित अभिव्यक्ति को बेहतर बनाने के लिए कोई तरीका?
1
1/2
1 1/2
4 cups
4 1/2 cups
10 3/4 cups sliced
लाइन के संख्यात्मक भाग का अपना समूह होना चाहिए इसलिए मैं उस पार्स कर सकते हैं मेरी अंश पार्सर के साथ। संख्यात्मक भाग के बाद सब कुछ एक दूसरा समूह होना चाहिए।
^\s*(\d+|\d+\/\d+|\d+\s*\d+\/\d+)\s*(.*)$
यह लगभग काम करता है, लेकिन "1 1/2 कप" के रूप में (1) (1/2 कप) के बजाय (1 1/2) और (कप पार्स हो जाएगी: सबसे पहले, मैं इस कोशिश की)। मेरे सिर को थोड़ा खरोंचने के बाद, मैंने यह निर्धारित किया कि यह मेरे "या" खंड के आदेश के कारण था। (1) \ d + और (। *) को संतुष्ट करता है बाकी को संतुष्ट करता है।
^\s*(\d+\/\d+|\d+\s*\d+\/\d+|\d+)\s*([a-z].*)$
यह लगभग काम करता है, लेकिन जैसा कि "1 1/2/4 कप" या "1/2 3 कप" weirdness इस तरह की अनुमति देता है: तो मैं करने के लिए इस बदल दिया है। इसलिए मैं मान्य संख्या अभिव्यक्ति के बाद पहली चरित्र के रूप में एक पत्र को लागू करने का फैसला किया:
^\s*(\d+\/\d+|\d+\s*\d+\/\d+|\d+)\s*($|[a-z].*)$
नोट मैं केस-संवेदी मोड में इस चल रहा हूँ। यहां मेरे प्रश्न हैं:
क्या अभिव्यक्ति में सुधार किया जा सकता है? मुझे थोड़े, संख्या, अंश, यौगिक अंश के लिए "OR" सूची पसंद नहीं है, लेकिन मैं पूरी संख्या, अंश, या यौगिक अंशों की अनुमति देने के तरीके के बारे में सोच नहीं सकता था।
यह अच्छा होगा अगर मैं संख्यात्मक घटक के बाद प्रत्येक शब्द के लिए समूह वापस कर सकता हूं। जैसे समूह (10 3/4), (कप) के लिए एक समूह और (कटा हुआ) के लिए एक समूह के रूप में। बाद में शब्दों की संख्या हो सकती है। क्या यह संभव है?
धन्यवाद!
ओह उफ़, याद किया एक और मामला .. राशि दशमलव में व्यक्त किया जा सकता है। तो मैं एक और या खंड जोड़ दिया है: ^ \ s * (। \ D + \/\ d + | \ d + \ s * \ d + \/\ d + | \ d + | \ d * \ \ घ) \ s * ($ |। [az] *) $ –