我正在用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 ==""
表达式应该能够匹配:
Trim(var1)==“”
var2 ==“”
var3 ==“”
var4 ==“”
修剪(var5)==“”
var6 ==“”
注意:在使用And语句时,我可以在添加“或”条件时手动添加必要的括号
答案 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
条件。