Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.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,我使用以下正则表达式来提取日期模式: ^\d{1,2}[-/.]\d{1,2}[-/.]\d{1,4}$ 此正则表达式与以下日期匹配:2004年10月11日、1999年20月19日等。 但它与我有特殊角色的模式不匹配:aa(11/10/2004) 如何修改它以匹配日期,即使它包含其他“字母、字符和数字” 我移除了锚固件,但仍然无法匹配日期。 不匹配:26/11/2004),25/10/2003) C++: #包括 #包括 使用名称空间std; int main() { 字符串d=“25/

我使用以下正则表达式来提取日期模式:

  • ^\d{1,2}[-/.]\d{1,2}[-/.]\d{1,4}$
此正则表达式与以下日期匹配:2004年10月11日、1999年20月19日等。 但它与我有特殊角色的模式不匹配:aa(11/10/2004)

如何修改它以匹配日期,即使它包含其他“字母、字符和数字”


我移除了锚固件,但仍然无法匹配日期。 不匹配:26/11/2004),25/10/2003)


C++:

#包括
#包括
使用名称空间std;
int main()
{
字符串d=“25/10/2003),”;
常量boost::正则表达式e(“\\d{1,2}[-/.]\d{1,2}[-/.]\\d{1,4}”);
boolx=boost::regex_匹配(d,e);
if(x)
{

cout您只需删除将匹配锚定到字符串开头和结尾的字符
^$

^.*\d{1,2}[-/.]\d{1,2}[-/.]\d{1,4}.*$


您只需删除将匹配锚定到字符串开头和结尾的字符
^$

^.*\d{1,2}[-/.]\d{1,2}[-/.]\d{1,4}.*$


您使用了错误的函数。
regex\u match
用于确定 给定的正则表达式是否与字符串完全匹配。 您需要的是
regex\u search
,它搜索匹配的
在字符串中的任意位置排序。

您使用了错误的函数。
regex\u match
用于确定 给定的正则表达式是否与字符串完全匹配。 您需要的是
regex\u search
,它搜索匹配的
在字符串中的任意位置排序。

下面的代码适合我

regex regExDate("\\d{4}-\\d{2}-\\d{2}");
string date = "abc:\\2016-09-12";
smatch match;

if (regex_search(date, match, regExDate))
{
 string strDate = match.str();
}

下面的代码适合我

regex regExDate("\\d{4}-\\d{2}-\\d{2}");
string date = "abc:\\2016-09-12";
smatch match;

if (regex_search(date, match, regExDate))
{
 string strDate = match.str();
}

aa(11/10/2004);,
中,您想匹配整个字符串还是只匹配
11/10/2004
部分?我想匹配
11/10/2004
部分。为了更简单,我只想知道
aa(11/10/2004)中的字符串是否包含日期模式;,
,是想匹配整个字符串还是只匹配
11/10/2004
部分?我想匹配
11/10/2004
部分。为了更简单,我只想知道字符串是否包含日期pattern@sshanhank我有一个问题,我会在我的问题中说明。是的,它起作用了。我在想它。所以
*
表示任何字符都可以前后对吗?@HaniGoc,有点。
*
将匹配除换行符以外的任何内容。为什么要简单(即
regex\u search
)并使用为工作设计的工具,当您可能很复杂时,使用另一个工具来工作?(这听起来比我的意思要严厉得多;我也经常使用类似的方法,尤其是在尝试匹配多个子模式时。)@SShank我有个问题,我会在我的问题中说明。是的,它起作用了。我在想它。所以
*
表示前后的任何字符,对吗?@HaniGoc,有点。
*
将匹配除新行以外的任何字符。为什么简单(即
正则表达式搜索
)当你可能很复杂的时候,使用为工作而设计的工具,并扭转另一个工具来工作?(这听起来比我的意思要严厉得多;我也经常使用类似的工具,尤其是在尝试匹配多个子模式时。)