Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/150.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 用于区分十进制值和非十进制值的正则表达式_C++_Regex - Fatal编程技术网

C++ 用于区分十进制值和非十进制值的正则表达式

C++ 用于区分十进制值和非十进制值的正则表达式,c++,regex,C++,Regex,我的正则表达式有问题 regex nameInt("([A-Za-z]+)\\: ([0-9]+)"); regex nameDecimal("([a-zA-Z]+)\\: ([-+]?[0-9]+\\.[0-9]+)"); 我的意见如下: Jenny: 12 Mark: 12.6 但是我的输入只会标记小数,而不会标记整数。试试这些表达式 带int的行: [a-zA-Z]+\: \d+$ 带小数的行: [a-zA-Z]+\: \d+\.\d+$ 试试这些表达 带int的行: [a-zA-

我的正则表达式有问题

regex nameInt("([A-Za-z]+)\\: ([0-9]+)");
regex nameDecimal("([a-zA-Z]+)\\: ([-+]?[0-9]+\\.[0-9]+)");
我的意见如下:

Jenny: 12
Mark: 12.6
但是我的输入只会标记小数,而不会标记整数。

试试这些表达式

带int的行:

[a-zA-Z]+\: \d+$
带小数的行:

[a-zA-Z]+\: \d+\.\d+$
试试这些表达

带int的行:

[a-zA-Z]+\: \d+$
带小数的行:

[a-zA-Z]+\: \d+\.\d+$
以下是代码:

#包括
#包括
#包括
int main(){
使用名称空间std;
向量v_s={“Jenny:12”,“Mark:12.6”};
正则表达式reg_int(“^(.\\D+\ \:([+-]?.\\D+$”);
正则表达式双精度(“^(.\\D+\ \:([+-]?.\\D+\\.\\D+$”);
用于(const auto&s:v_s){
if(std::regex_匹配(s,reg_int))
cout下面是代码:

#包括
#包括
#包括
int main(){
使用名称空间std;
向量v_s={“Jenny:12”,“Mark:12.6”};
正则表达式reg_int(“^(.\\D+\ \:([+-]?.\\D+$”);
正则表达式双精度(“^(.\\D+\ \:([+-]?.\\D+\\.\\D+$”);
用于(const auto&s:v_s){
if(std::regex_匹配(s,reg_int))

您可以针对整个多行字符串或单个行测试这些代码吗?(有或没有换行符?使用
regex\u match
regex\u search
?)需要的不仅仅是几个代码片段。您是针对整个多行字符串或单个行测试这些代码吗?(带或不带换行符?带
regex\u匹配
regex\u搜索
?)需要一个而不仅仅是几个片段。你能解释一下它与OP的正则表达式有何不同以及为什么它能解决问题吗?你能解释一下它与OP的正则表达式有何不同以及为什么它能解决问题吗?你知道什么是
\\D+
匹配的吗?OP只需要字母数字。\D表示一个不是数字的字符。我可以说“([a-Za-z]+)\:([0-9]+)“也可以,前面的点是用来做什么的?你知道
\\D+
匹配的是什么吗?OP只需要字母数字。\D表示一个不是数字的字符。我知道任何情况下”([a-Za-z]+\\:([0-9]+)”也可以,前面的点是用来做什么的?