regex - Make expression match optional value if possible -
निम्नलिखित पाठ पर विचार करें जो jMeter से एक HTTP प्रतिसाद का हिस्सा हो सकता है:
& lt ; मेनू आईडी = "अल्फा" नाम = "अल्फा" & gt; & lt; विकल्प मान = "ए" & gt; ए & lt; / विकल्प & gt; & lt; विकल्प मान = "बी" & gt; बी & lt; / option & gt; & lt; विकल्प मान = "सी" चयनित = "चयनित" & gt; सी & lt; / option & gt; & Lt; / मेनू & gt; & Lt; मेनू आईडी = "ब्रावो" नाम = "ब्रेवो" & gt; & lt; विकल्प मान = "d" & gt; डी & lt; / विकल्प & gt; & lt; विकल्प मान = "ई" & gt; ई & lt; / विकल्प & gt; & Lt; / मेनू & gt; मैं प्रत्येक मेनू के आईडी को निकालने की कोशिश कर रहा हूं, साथ ही चयनित विकल्प का मान अगर कोई विकल्प चयनित है I यदि कोई विकल्प नहीं चुना है, तो डिफ़ॉल्ट रूप से, पहले विकल्प का मान मिलान किया जाना चाहिए। उदाहरण के लिए, इस उदाहरण में, मैं चाहता हूं कि निम्न मिलान किया जाए:
"अल्फा" "सी" "ब्रावो" "डी" अब तक , मैंने निम्न लिखा है:
& lt; चुनें आईडी = "फ़ॉर्म: पैरामीटर लिस्ट: ([^" + +?) "। *? & Gt;। *? (?: & Lt; विकल्प value = "([^"] *?) "* (?: चयनित =।?" चयनित ") & gt;?।) * & LT;? / चयन & gt; इस के साथ समस्या यह है कि केवल पहला विकल्प का मान कभी भी मेल नहीं खाता है, और चयनित विकल्प कभी भी मेल नहीं खाता है। यही है, मैं वैकल्पिक पैटर्न से मिलान करने को प्राथमिकता देना चाहता हूं।
धन्यवाद, विक्टर
आप xpath extractors, सशर्त / पाश नियंत्रक और या बाद के प्रोसेसर का उपयोग करके इच्छित परिणाम प्राप्त कर सकते हैं ...
पहले सभी आईडी की एक सूची प्राप्त करें: >
// menu / @ id आप विशेषता के साथ एक विकल्प वाले आईडी की एक सूची प्राप्त कर सकते हैं चयनित = चयनित 'के समान कुछ के साथ:
// menu / @ id [/ विकल्प [@ चयनित =' चयनित ']] पहले से दोहराएं सूची (उदाहरण के लिए एक बीनशेल प्रोसेसर या पाश नियंत्रक में) दूसरी सूची में एक आईडी कहां दिखाई देती है, तो निम्न मान को निम्न के साथ निकालें:
// menu [@ id = 'xxxx'] / विकल्प [@ चयनित = 'चयनित'] / @ मान / * उपयुक्त आईडी * / के साथ प्रतिस्थापन xxxx जहां आईडी में 'चयनित' मान नहीं है, डिफ़ॉल्ट मान निकालें:
// menu / [@ id = 'xxxx'] / विकल्प [1] / @ मान / * विकल्प xxxx के साथ उपयुक्त आईडी * / (यदि मेरी एक्सपैथ पूरी तरह से सटीक नहीं है, मैंने लिखा है यह केवल स्मृति से है, लेकिन उम्मीद है कि ब्रेडक्रंबों का पालन करना है)
Comments
Post a Comment