Я не нашел ни одного шага поиска / замены, который бы все сделал за вас, но мне удалось сделать это, используя последовательность регулярных выражений, применяемых один за другим. Первый извлекает содержимое для имени переменной и вставляет «=». Следующий делает основной тяжелый подъем и удаляет пробелы и применяет правильный кожух. Последний гарантирует, что все переменные начинаются со строчных букв. Применяйте их последовательно для достижения желаемого результата.
Regex # 1
Все, что мы здесь делаем, это извлекаем содержимое из кавычек и вставляем его в левую часть.
Примечание: здесь и ниже, мне нужно использовать этот символ для пробела, потому что SO не отображает его правильно: ␣. Поэтому замените это пробелом при использовании этого или других регулярных выражений в этом ответе.
Найти: "(.+)"
Заменить: ␣\1 = "\1"
(обратите внимание на начальный пробел)
В нашем примере после этого шага мы получим:
hello World = "hello World"
foo bAr = "foo bAr"
Regex # 2
Здесь мы хотим сопоставить каждое слово слева, с целью удаления пробела и одновременной фиксации корпуса.
Найти: ␣(\S)(\S+)(?=.*=)
(обратите внимание на начальный пробел)
Заменить: \u\1\L\2
(отсутствие пробела в шаблоне замены приводит к удалению пробела)
После этого шага мы получим:
HelloWorld = "hello World"
FooBar = "foo bAr"
Правильно , за исключением первой буквы каждого имени переменной.
Regex # 3
Исправляет начальные символы в нижнем регистре:
Найти: ^(.)
Заменить: \l\1
После этого шага наш вывод будет следующим:
helloWorld = "hello World"
fooBar = "foo bAr"
Необязательное регулярное выражение # 4 (Удалить Недопустимые символы)
Хотя в требовании принимались все буквы, часто это не так. Во-первых, вы можете захотеть ввести некоторые цифры. Во-вторых, могут быть ненужные скобки. В этом случае просто выполните поиск / замену с пустым выражением замены для следующего выражения поиска:
[^\w\r\n](?!=)(?=.*=)
То, что он делает, в первую очередь отрицательно соответствует чему-либо, что не является буквой, di git, знак подчеркивания или конец строки. Затем он гарантирует, что за соответствием следует =
вниз по линии, но не сразу следует =
, что означает пробел до =
.