本文最后更新于 40 天前,其中的信息可能已经有所发展或是发生改变。
且学且更新:应用regex函数:#include <regex>
基本用法
1.regex_match(字符串收索功能);实例【搜索字符串0~255数字】——(“1?\\d\\d|2[0-4]\\d|25[0-5]”)
注释:\\d 表示任意数字字符;[x-x]闭区间正整数;?表示前一个符号有可能出现也有可能不出现;regex_match的返回值为ture | false 的布尔值。
提示:要选择多个字符串需要以这个形式:regex re (a + “|” + b);
2.regex_replace(字符串替换功能);格式:regex_replace(str,re,” 0″)注释:在str中搜索字符串re替换成”o”.
regex re(“(World)”)和regex re(“World”)的区别在于前者会创建一个捕获组便于在后面的代码中运用他比如 $1
//1.regex_match
#include <iostream>
#include <regex>
#include <string>
using namespace std;
int main() {
string str;
regex ip_pattern(R"((25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)){3})");
while (getline(cin, str)) {
if (regex_match(str, ip_pattern)) {
cout << "Y" << endl;
} else {
cout << "N" << endl;
}
}
return 0;
}
//2.regex_replace
#include <iostream>
#include <cctype>
#include <regex>
using namespace std;
int main() {
string str;
regex re (" ");
while(getline(cin, str)) {
string result = regex_replace(str, re, "") ;
if(result.length() <= 100){
cout << result << endl;
}else{
cout << "Result String is cutted." << endl;
}
}
}