gpt4 book ai didi

javascript - 正则表达式有(太多?)很多情况

转载 作者:行者123 更新时间:2023-12-02 20:52:32 26 4
gpt4 key购买 nike

我在正则表达式上挣扎了几个小时,似乎没有找到最后一点解决方案。我基本上是逐行解析 C 头文件以查找变量。

以下是我可能遇到的需要传递正则表达式的行的情况:

//#define variable_name { 300 }

#define variable_name { 300 }

//#define variable_name

#define variable_name

//#define variable_name { 300 } // Comment

#define variable_name { 300 } // Comment

#define variable_name // Comment

//#define variable_name // Comment

以下规则适用于上面的每一行:

  • 一行可以选择以注释斜杠开头(即//)
  • #define variable_name 将始终存在
  • 变量可以选择有一个值(例如 { 300 })
  • 变量值(如果存在)可以是所有可能的类型(文本、数字或 vector )
  • 一行可以有一个前导注释,可以在值之后,也可以直接在变量名之后

我一直在设法成功创建以下表达式,直至可选变量值或可选注释:

/^(\/\/)?(#define)\s(\w+)\s?(.*[\/\/]?)?

可以在这里测试表达式:https://regex101.com/r/krZB71/3/

我遇到的问题在第五 (5) 场和第六 (6) 场比赛的第 4 组中很明显,值(value)和主要评论最终被分组在一起......我的目标是单独分组 变量名称、可选值、可选前导注释

我基本上需要 \s? 之后部分的帮助:

/^(\/\/)?(#define)\s(\w+)\s? xxxxxxxxx

非常感谢任何帮助

最佳答案

我发现使用以下表达式将变量和注释分开:

^(\/\/)?(#define)\s(\w+)\s?(.*?)(\/\/.*?)?$

关于javascript - 正则表达式有(太多?)很多情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61573319/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com