我需要使用regex从给定字符串中提取子字符串。
我正在解析c#代码,我需要获取检查空值的变量。
注意:我将c#代码保存在文本文件中,并将这些行读为字符串值
我的字符串可以采用以下格式。
string code = "if (!(strOld_Value == "" && strNew_Value == "") || (strOld_Value == "" && strNew_Value.ToLower() != "") ";
从上面的输入字符串中,我需要对变量名称进行extarct,检查是否为空值。即)我想要的输出应该是
strOld_Value == ""
strNew_Value == ""
strOld_Value == ""
strNew_Value.ToLower() != ""
我的字符串不一定总是在同一个模式中,有时我的字符串可以是一个简单的字符串,如下所示,
string code = "if (Name == "")"
在上面的例子中,我想要的输出是,
Name == ""
是否可以为此方案编写通用的正则表达式模式?在此先感谢。
答案 0 :(得分:1)
您可以使用以下正则表达式模式:
[_0-9a-zA-Z\s\.]+[()\s]*(==|!=)\s*\"[0-9a-zA-Z]*\"
答案 1 :(得分:1)
你可以试试这个正则表达式:
(\w+(\.\w+[\)\(]*)*\s*(==|\!=)\s*\"\")
[\w]+
- 匹配任何单词字符一次或多次(\.\w+[\)\(]*)*
=(匹配.
及其后的任何字符,以及
可以有括号)零次或多次\s*
- 可选空间(==|\!=)
- ==
或!=
\s*
- 可选空间\"\"
- 匹配空值(""
)答案 2 :(得分:1)
正如消费者所说,听起来你需要能够解析C#代码并访问解析器识别的变量名称