请问一下我使用该正则表达式的时候:
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 中就会出现错误。
例如,前端项目打包后,很多文件中都包含一个指定的ip;现在需要把这些ip全部替换为另一个ip,就可以使用这个命令。
(当然也可以让前端更换ip后,重新打包)