我有句子"这是我生命中最好的一天"和"这是最好的 我的生活" 最好的一天"。我希望匹配" best"其次是" day"使用正则表达式,即句子应包含表达式"最佳日期"。注意在" best"之间可以有任意数量的空格。和"日"但是,日应该在最佳之后。
我写了这个正则表达式 - (best)(\\s+)(day)
并在C ++中使用了regex_match,但它没有用。我对Regex不是很熟悉;有人可以指导我吗?
bool isValidBestDay(string str)
{
string bestDay = "(best)(\\s+)(day)";
regex bestDayMatch(suchThat, ECMAScript | icase);
return regex_match(str, bestDayMatch);
}
我在C ++上遇到的问题是,如果我有一个字符串,那么最好的一天'它匹配,但如果我有类似"这个最好的一天"。 谢谢!
答案 0 :(得分:1)
使用regex_search
代替regex_match
,since:
regex_search将成功匹配给定的任何子序列 序列,而std :: regex_match只会返回true 正则表达式匹配整个序列。
答案 1 :(得分:-2)
你正在寻找的正则表达式是
((best)\s*(day))
转到此网站http://regexr.com
在Expression
框中输入我给的正则表达式
并在Text
框中放入以下示例,您将理解。
离。
This is the best day of my life
This is the best day of my life
This is the best not day of my life