使用正则表达式搜索子字符串的字符串

时间:2017-05-14 10:29:49

标签: c++ regex

我是c ++的新手。如何搜索字符串以查找该字符串的某个部分?

例如,如果我搜索了150磅的用户输入字符串并试图寻找" lbs"我返回一个真正的布尔值?

我尝试使用正则表达式,但我已经卡住了

1 个答案:

答案 0 :(得分:2)

真正的快速回答。

bool isLbs(string s){
    return (s.find("lbs") != string::npos);
}

这会奏效。但你怎么问。

首先,我建议先阅读this

现在真的很简单。 C ++中的类std :: String有一个名为find的函数,可用于检查字符串中是否存在字符串。它返回的类型是无符号整数类型,因此要将其转换为bool,您需要检查str.find(“searchWord”)!= string :: npos。因为如果它确实等于string :: npos,那么它在字符串中不存在。

正如我所说,随时可以在cplusplus.com上阅读更深入的文档。

链接:http://www.cplusplus.com/reference/string/string/find/

P.S如果传递“3213lbs2313”或“lbs1234124”,上面的函数也会返回true。因此,只要它在字符串内部,它就不关心lbs在哪里。如果您只想检查它是否在最后,那么您可以检查if (s.substr(s.size()-3) == "lbs")调用std :: String类的另一个函数,该函数返回字符串的最后3个字符并检查它们是否等于“磅”。