c/c++语言开发共享C编译器警告未知的转义序列’。’ 使用正则表达式进行c程序

我正在使用正则表达式来确定具有.dat扩展名的命令行参数。 我正在尝试以下正则表达式:

#define to_find "^.*.(dat)?" 

出于某种原因,我收到了我在这个问题标题中所说的警告。 首先,这个表达是否正确? 我相信它是。 第二,如果它是正确的,我怎么能摆脱这个警告?

我在Xcode中编写ac程序,上面的#define在我的.h文件中。 谢谢!

    警告来自C编译器。 它告诉你那个. 在C中不是已知的转义序列。由于此字符串将转到正则表达式引擎,您需要双斜线斜杠,如下所示:

     #define to_find "^.*\.(dat)?" 

    此正则表达式将匹配带有可选.dat扩展名的字符串,其中dat是可选的。 但是,点. 是必须的。 如果你想要点也是可选的,把它放在括号内,如下所示: ^.*(\.dat)?

    请注意,您可以通过将它们括在方括号中来避免转义单个元字符,如下所示:

     #define to_find "^.*([.]dat)?" 

    你需要

     #define to_find "^.*\.(dat)?" 

    应该这样做,因为需要为C转义,而不是在此阶段正则表达式的好处

    需要了解更多c/c++开发分享C编译器警告未知的转义序列’。’ 使用正则表达式进行c程序,也可以关注C/ C++技术分享栏目—计算机技术网(www.ctvol.com)!

      以上就是c/c++开发分享C编译器警告未知的转义序列’。’ 使用正则表达式进行c程序相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/979130.html

      (0)
      上一篇 2021年12月12日
      下一篇 2021年12月12日

      精彩推荐