在每个if语句中复制条件的正则表达式

时间:2019-04-18 20:32:49

标签: regex

我正在用Notepad ++写一个正则表达式来复制和修改某些条件。

例如:

如果(variable1 ==“”)应该变成

如果(variable1 ==“”或len(variable1)== 0)

我需要匹配的关键是变量名,直到==“”为止,这样我就可以为or条件重复它们

我有以下表达式:

[A-Za-z0-9()]*?\s*==\s*""

但是,如果If和括号之间没有空格

,则失败

https://regex101.com/r/Beyumi/3

我相信以下几行内容可以涵盖大多数情况:

If (Trim(var1) == "" And var2 == "") 
    /*Then do something*
ElseIf(var3 == "" And var4 == "" And Trim(var5)=="") Then
/*block of code*/
ElseIf var6 ==""

表达式应该能够匹配:

  1. Trim(var1)==“”

  2. var2 ==“”

  3. var3 ==“”

  4. var4 ==“”

  5. 修剪(var5)==“”

  6. var6 ==“”

注意:在使用And语句时,我可以在添加“或”条件时手动添加必要的括号

1 个答案:

答案 0 :(得分:0)

您可以使用此正则表达式,

((\w+|trim\(\w+\))\s*==\s*"")

并用它替换

(\1 or len(\2) == 0)

注意,我已启用不区分大小写的匹配,并且(\w+|trim\(\w+\))部分使用\w+匹配普通变量或使用trim(variablename)匹配trim\(\w+\)并将其捕获到group2中,其中{ \s*周围的{1}}会处理可选的空白,并且整个组都在圆括号中捕获,因此可以将其替换为当前表达式,另外可以将其替换为==,并将整个圆括号括起来以进行适当的分组, or len(\2) == 0条件。

Regex Demo