続いSUBSTRING:消去は、次のように私はいくつかの文字列を持っているC++ CLIでの数字や文字
First_1
First_2
Second_2
Third3
Fourth_A4
Fifth3B
Sixth2
Seventh_2A
Eighth
文字列から、私はそうでのみ、次のFirst
、Second
、Third
、Fourth
とを取得する必要があります。つまり、アンダースコアまたは数字の発生時に、アンダースコアまたは数字の後の文字列の残りの部分は無視します。
は数字を除去するために、私が行っているこの:
str.erase(std::remove_if(str.begin(), str.end(), std::isdigit), str.end());
と文字のために、私はこの行っている:
std::string wService::removeCharacters(std::string str, char chars[])
{
for (unsigned int i = 0; i < strlen(chars); ++i)
{
str.erase(std::remove(str.begin(), str.end(), chars[i]), str.end());
}
return str;
}
しかし、上記の両方の方法で、文字だけまたは数字を削除します私は文字列の最初の部分を取得し、文字列の後ろに数字や文字を削除したいと思います。これを行う方がどちらの方が良いでしょうか?
正規表現 - https://ideone.com/DHItCG、またはhttps://ideone.com/dXH0Yq –
@WiktorStribiżew、この正規表現は、このようなThird3やSixth2のように文字列では動作しません。これらの文字列の場合でも、私はそれぞれ第三と第六を得ることができるはずです。 – smyslov
@smyslov、WiktorStribiżewのソリューションは完全に動作します:https://ideone.com/e8jpB7 – rainer