C++ 使用boost::regex匹配两个整词

C++ 使用boost::regex匹配两个整词,c++,regex,string,search,boost,C++,Regex,String,Search,Boost,这似乎是一个非常简单的问题,但无论我尝试什么,表达式都无法读取名称 这里的任务是匹配两个随机长度的字符串(某人的名字),然后在单词后匹配一个id号,格式如下:Joe Blow 123-456-678 我正在使用boost::regex\u搜索 到目前为止,我已经尝试过这些表达方式,但都不起作用 "\\w{15}? \\s? \\w{15}? \\s? \\d{3}-\\d{3}-\\d{3}" "\\w* \\s \\w* \\s \\d{3}-\\d{3}-\\d{3}" "\\w+ \\

这似乎是一个非常简单的问题,但无论我尝试什么,表达式都无法读取名称

这里的任务是匹配两个随机长度的字符串(某人的名字),然后在单词后匹配一个id号,格式如下:Joe Blow 123-456-678

我正在使用boost::regex\u搜索

到目前为止,我已经尝试过这些表达方式,但都不起作用

"\\w{15}? \\s? \\w{15}? \\s? \\d{3}-\\d{3}-\\d{3}"

"\\w* \\s \\w* \\s \\d{3}-\\d{3}-\\d{3}"

"\\w+ \\s \\w+ \\s \\d{3}-\\d{3}-\\d{3}"
我也尝试了其他一些小的变化,但没有任何效果。这是第一次使用正则表达式,所以,如果你们中的一些人是专业人士,而且这非常简单,请对我放松。

尝试使用正则表达式

"^[a-zA-Z]+? [a-zA-Z]+? \\d{3}-\\d{3}-\\d{3}$"
然后看看它是否有效

尝试使用

"^[a-zA-Z]+? [a-zA-Z]+? \\d{3}-\\d{3}-\\d{3}$"

然后看看它是否有效

问题是你所有的表达式要求单词之间有3个空格。问题是你所有的表达式要求单词之间有3个空格。嗯,你确定输入是这种格式吗?“单词3digits-3digits-3digits”?那是我的错误。很明显,我的文本文件中漏掉了一个单词,非常有效。谢谢你,先生。我道歉。你能解释一下+是什么吗?符号表示在[a-zA-Z]之后很高兴听到这一点!:)嗯,你确定输入是这种格式的吗?“单词3digits-3digits-3digits”?那是我的错误。很明显,我的文本文件中漏掉了一个单词,非常有效。谢谢你,先生。我道歉。你能解释一下+是什么吗?符号表示在[a-zA-Z]之后很高兴听到这一点!:)