Skip to main content
 首页 » 编程设计

c#之c#中用于变量声明和初始化的正则表达式

2024年02月03日30powertoolsteam

我想编写一个 RegEx 来从变量声明语句中提取所有变量值及其名称。说我有

int i,k = 10,l=0

我想写一个像 int\s^,?|(^,?)* 这样的正则表达式 但这也将接受 k = 10 即(前面没有 int) 基本上想法是 如果字符串以 int 开头,则 获取由 , 分隔的变量列表

我知道要提取 csv 值,但这里我的字符串也有一些初始值。我该如何解决?

请您参考如下方法:

开始思考定义的结构,比如说,

(a line can start with some spaces) followed by, 
 
(Type) followed by 
 
(at least one space) 
(variable_1) 
(optionally 
   (comma // next var 
    | 
    '='number // initialization 
    ) ...` 

然后尝试转换每个组:

^      \s*    \w+           \s+        \w+         ?          (','    |  '=' \d+   ) ... 
line  some    type          at least  var          optionally   more  or init some 
start spaces  (some chars)  one space (some chars)              vars     val  digits 

留作作业删除空格并修复最终的正则表达式。