मेरे पास एक ऑनलाइन फॉर्म है जिसे ग्राहक भरते हैं और जमा करते हैं जो एक खरीद आदेश उत्पन्न करता है। वह डेटा एक मॉनिटर किए गए इनबॉक्स में भी भेजा जाता है, जिसका उपयोग मैं डेटा को पार्स करने और इसे हमारे ईआरपी में दर्ज करने के लिए बिजनेस सेंट्रल में पावर ऑटोमेट के साथ उपयोग कर रहा हूं। मैं उस डेटा को कैसे पार्स कर रहा हूं इसका एक उदाहरण:
ईमेल बॉडी:
सड़क का पता: ९५ एन २०० ई
शहर: भरपूर
राज्य / प्रांत: केंद्र शासित प्रदेश
डाक / पिन कोड: ८४०१०-४८४८
मैं जिस रेगेक्स पैटर्न का उपयोग कर रहा हूं वह है:
Street Address: (?<streetaddress>.+|)
City: (?<city>.+|)
State \/ Province: (?<state>.+|)
Postal \/ Zip Code: (?<zip>.+)
यह काम करता है। बाद में मेरे पास ईमेल के मुख्य भाग में है:
* S12 (राशि: 730.00 USD, विशेष मात्रा: 1546)
* आयरनवर्क्स ड्रिंकिंग (राशि: १,५९९.०० यूएसडी, विशेष मात्रा: १)
* IRONWORKS LRing (राशि: 399.00 USD, विशेष मात्रा: 1)
* आयरनवर्क्स श्रिंग (राशि: १,१९९.०० अमरीकी डालर, विशेष मात्रा: १) **
इसके लिए मेरा रेगेक्स हालांकि काम नहीं करता है और मैं समझ नहीं पा रहा हूं कि क्यों।
\* S12 \(Amount: 730.00 USD, Special Quantity: (?<S12Quantity>\d+|)
\* IRONWORKS DRing \(Amount: 1,599.00 USD, Special Quantity: (?<DQuantity>\d+|)
\* IRONWORKS LRing \(Amount: 399.00 USD, Special Quantity: (?<LQuantity>\d+|)
\* IRONWORKS SRing \(Amount: 1,199.00 USD, Special Quantity: (?<SQuantity>\d+|)
मैं सिर्फ प्रत्येक वस्तु के लिए मात्रा खींचने की कोशिश कर रहा हूं, लेकिन बाद में राजस्व राशि के साथ एक ही काम करने का एक तरीका खोजने की जरूरत है।
2 जवाब
आपके कैप्चर समूह के अंत में आपके पास खुले कोष्ठक होते हैं।
from:
(?<S12Quantity>\d+|)
to:
(?<S12Quantity>\d+)\)
आपको कैप्चर समूह को बंद करने वाले )
और स्ट्रिंग के अंत में शाब्दिक )
के लिए खाते की आवश्यकता होगी।
मैंने इसे फिक्स के साथ परीक्षण किया है और यह मेरे लिए रुबुलर पर काम करता है:
\* S12 \(Amount: 730.00 USD, Special Quantity: (?<S12Quantity>\d+)\)
\* IRONWORKS DRing \(Amount: 1,599.00 USD, Special Quantity: (?<DQuantity>\d+)\)
\* IRONWORKS LRing \(Amount: 399.00 USD, Special Quantity: (?<LQuantity>\d+)\)
\* IRONWORKS SRing \(Amount: 1,199.00 USD, Special Quantity: (?<SQuantity>\d+)\)
प्रत्येक पंक्ति )
के साथ समाप्त होती है, और यह वर्ण पैटर्न पैटर्न में गायब है।
साथ ही, पीरियड्स से बचना चाहिए क्योंकि .
किसी भी कैरेक्टर से मेल खाता है।
इसके अलावा, (\d+|)
(\d*)
कहने का एक जटिल तरीका है - शून्य या अधिक अंक।
उपयोग
\* S12 \(Amount: 730\.00 USD, Special Quantity: (?<S12Quantity>\d+)\)
\* IRONWORKS DRing \(Amount: 1,599\.00 USD, Special Quantity: (?<DQuantity>\d*)\)
\* IRONWORKS LRing \(Amount: 399\.00 USD, Special Quantity: (?<LQuantity>\d*)\)
\* IRONWORKS SRing \(Amount: 1,199\.00 USD, Special Quantity: (?<SQuantity>\d*)
देखें प्रमाण