Regex 如何使用c+中的正则表达式打印字符串中的三位数+;?
示例输入Regex 如何使用c+中的正则表达式打印字符串中的三位数+;?,regex,string,Regex,String,示例输入 abc55def789KK23GOOD9999910ONEM109ORE19k6 abcdef 输出 789 109 示例输入 abc55def789KK23GOOD9999910ONEM109ORE19k6 abcdef 输出 -1 这是我需要通过正则表达式代码实现的 我已经浏览了很多网站上的教程,但无法根据需要解读 我的想法是使用这个正则表达式 rx("[0-9][0-9][0-9]""\\-""[0-5][0-5]") 但是我无法理解smatch标志以及如何检索结
abc55def789KK23GOOD9999910ONEM109ORE19k6
abcdef
输出
789 109
示例输入
abc55def789KK23GOOD9999910ONEM109ORE19k6
abcdef
输出
-1
这是我需要通过正则表达式代码实现的
我已经浏览了很多网站上的教程,但无法根据需要解读
我的想法是使用这个正则表达式
rx("[0-9][0-9][0-9]""\\-""[0-5][0-5]")
但是我无法理解smatch
标志以及如何检索结果 下面是一个示例,显示如何提取不包含其他数字的3位数块:
#include <string>
#include <iostream>
#include <regex>
using namespace std;
int main() {
std::regex r(R"((?:^|\D)(\d{3})(?!\d))");
std::string s = "abc55def789KK23GOOD9999910ONEM109ORE19k6"; // "abcsd"; => Not Found
if (regex_search(s, r)) {
for(std::sregex_iterator i = std::sregex_iterator(s.begin(), s.end(), r);
i != std::sregex_iterator();
++i)
{
std::smatch m = *i;
std::cout << m[1].str() << '\n';
}
} else {
std::cout << "Not found" << '\n';
}
return 0;
}
#包括
#包括
#包括
使用名称空间std;
int main(){
正则表达式r(r)((?:^|\D)(\D{3})(?!\D))”;
std::string s=“abc55def789kkk23good99910onem109ore19k6”/“abcsd”=>未找到
if(正则表达式搜索(s,r)){
for(std::sregx_迭代器i=std::sregx_迭代器(s.begin(),s.end(),r);
i!=std::sregex_迭代器();
++(一)
{
std::smatch m=*i;
std::cout Tryrx(R)((?:^\D)(\D{3})(?!\D))”