linux下的c++正则表达式

请问一下我使用该正则表达式的时候:
regex pattern("\w{3}\s\w{3}\s\d{2}\s\d{2}:\d{2}:\d{2}\s\d{4}");
Windows下可以运行,但是linux下直接报错

terminate called after throwing an instance of 'std::regex_error'
  what():  regex_error
Aborted (core dumped)

,我想匹配这种字符串Thu Jun 08 02:00:00 2023,能给一个linux上能用的正则表达式吗

因为Windows和Linux使用的正则表达式引擎不同
Windows使用的正则表达式引擎支持\w,\d等简写字符类。而Linux默认使用的regex引擎不支持这些简写,需要使用全称[0-9]等
所以linux里的正则表达式是

regex pattern("[a-zA-Z]{3}\s[a-zA-Z]{3}\s[0-9]{2}\s[0-9]{2}:[0-9]{2}:[0-9]{2}\s[0-9]{4}");

望采纳!

Windows 和 Linux 操作系统中,文件路径的分隔符不同,如果在正则表达式中使用了反斜杠作为转义字符,那么在 Linux 中就会出现错误。