/ / बूस्ट regex उप-स्ट्रिंग मैच - सी ++, regex, बढ़ावा

बूस्ट रेगेक्स सब-स्ट्रिंग मैच - सी ++, रेगेक्स, बूस्ट

मैं "नियमित" पैटर्न वापस करना चाहता हूं यदि पैटर्न "नियमित" चरशील सेंट की उप-स्ट्रिंग है। क्या यह संभव है?

int main()
{
string st = "some regular expressions are Regxyzr";

boost::regex ex("[Rr]egular");
if (boost::regex_match(st, ex))
{
cout << "match" << endl;
}
else
{
cout << "not match" << endl;
}
}

उत्तर:

उत्तर № 1 के लिए 16

बूस्ट :: regex_match केवल पूरी स्ट्रिंग से मेल खाता है, आप शायद इसके बजाय :: regex_search को बढ़ावा देना चाहते हैं।


उत्तर के लिए 7 № 2

regex_search जो आप चाहते हैं वह करता है; regex_match के रूप में दस्तावेज है

निर्धारित करता है कि एक नियमित नियमित है या नहीं अभिव्यक्ति मिलान सब दिए गए चरित्र अनुक्रम

(उस मूल URL में जोर दिया गया है जिसे मैं उद्धृत कर रहा हूं)।


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

लाइब्रेरी दस्तावेज में उदाहरण के साथ आपके प्रश्न का उत्तर दिया गया है - को बढ़ावा देने :: regex

वैकल्पिक दृष्टिकोण:

आप boost :: regex_iterator का उपयोग कर सकते हैं, यह फ़ाइल को पार्सिंग आदि के लिए उपयोगी है।

string[0],
string[1]

नीचे प्रारंभ और अंत iterator इंगित करता है।

उदाहरण के लिए:

boost::regex_iterator stIter(string[0], string[end], regExpression)
boost::regex_iterator endIter

for (stIter; stIter != endIter; ++stIter)
{
cout << " Whole string " << (*stIter)[0] << endl;
cout << " First sub-group " << (*stIter)[1] << endl;
}

}