का उपयोग कर एक स्ट्रिंग को टोकननाइज़ करें मैं इस समय स्क्रैच से कुछ सी ++ सीखने की कोशिश कर रहा हूं।
मैं पाइथन, पर्ल, जावास्क्रिप्ट में अच्छी तरह से परिचित हूं लेकिन अतीत में कक्षा सेटिंग में केवल सी ++ का सामना करना पड़ा है। कृपया मेरे प्रश्न के naivete बहाना।सी ++ एक नियमित अभिव्यक्ति
मैं नियमित अभिव्यक्ति का उपयोग करके एक स्ट्रिंग को विभाजित करना चाहता हूं लेकिन को सी ++ में ऐसा करने का एक स्पष्ट, निश्चित, कुशल और पूर्ण उदाहरण खोजने में बहुत भाग्य नहीं मिला है।
पर्ल में इस,
/home/me$ cat test.txt
this is aXstringYwith, some problems
and anotherXY line with similar issues
/home/me$ cat test.txt | perl -e'
> while(<>){
> my @toks = split(/[\sXY,]+/);
> print join(" ",@toks)."\n";
> }'
this is a string with some problems
and another line with similar issues
मैं कैसे सी में बराबर पूरा करने के लिए सबसे अच्छा ++ जानना चाहते हैं कार्रवाई आम है है, और इस तरह एक छोटी सी ढंग से पूरा किया जा सकता।
संपादित करें:
मुझे लगता है कि मैंने पाया कि मैं बूस्ट लाइब्रेरी में जो खोज रहा था, उसे नीचे बताया गया है।
boost regex-token-iterator (क्यों अंडरस्कोर काम नहीं करते?)
मुझे लगता है मैं के लिए खोज करने के लिए क्या नहीं पता था।
#include <iostream>
#include <boost/regex.hpp>
using namespace std;
int main(int argc)
{
string s;
do{
if(argc == 1)
{
cout << "Enter text to split (or \"quit\" to exit): ";
getline(cin, s);
if(s == "quit") break;
}
else
s = "This is a string of tokens";
boost::regex re("\\s+");
boost::sregex_token_iterator i(s.begin(), s.end(), re, -1);
boost::sregex_token_iterator j;
unsigned count = 0;
while(i != j)
{
cout << *i++ << endl;
count++;
}
cout << "There were " << count << " tokens found." << endl;
}while(argc == 1);
return 0;
}
आपके द्वारा जोड़े जाने हिस्सा अपने स्वयं के प्रश्न का उत्तर के रूप में के बजाय यह अपने प्रश्न का हिस्सा बनने के होने का "अपने दम पर पाया" चाहिए ... हालांकि उल्लेख है कि आप इसे मिल गया है और जवाब पोस्ट किया। यदि कोई और साथ आता है और यह प्रश्न उपयोगी लगता है ... वे समुदाय को आपके चुने हुए उत्तर के साथ चयनित उत्तर देखना चाहते हैं। आपका उत्तर कम्युनिस्ट्स की सबसे अच्छी पसंद नहीं हो सकता है। –