Регулярное выражение для дублирующих условий в каждом операторе if - PullRequest
1 голос
/ 18 апреля 2019

Я пишу регулярное выражение в Notepad ++ для дублирования и изменения определенных условий if.

Например:

if (variable1 == "") должно стать

if (variable1 == "" или len (variable1) == 0)

Ключевые вещи, которые мне нужно сопоставить, - это имена переменных до == "", поэтому я могу дублироватьих для условия или

У меня было следующее выражение:

[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. Trim (var5) == ""

  6. var6 == ""

Примечание. В случае операторов And я могу вручную добавить необходимые скобки при добавлениие 'или' условие

1 Ответ

0 голосов
/ 18 апреля 2019

Вы можете использовать это регулярное выражение,

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

и заменить его следующим:

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

Обратите внимание, я включил сопоставление без учета регистра, а часть (\w+|trim\(\w+\)) соответствует любому простомупеременная с использованием \w+ или совпадение с trim(variablename) с использованием trim\(\w+\) и захватывает ее в group2, где \s* вокруг == заботится о необязательных пробелах, а вся группа захватывается в круглых скобках, поэтому ее можно заменить текущим выражением и дополнительнос or len(\2) == 0 и целым, окруженным круглыми скобками для соответствующей группировки из-за условия and.

Regex Demo

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...