RegExp - Notepad ++ объединяет операторы - PullRequest
0 голосов
/ 27 ноября 2018

Я что-то упускаю из-за этой попытки найти / заменить регулярное выражение.У меня есть следующий формат:

word | word | word

Я хотел бы сначала заменить каждый word на "word", чтобы произвести

"word" | "word" | "word"

, а затем впоследствии каждый [space]| на ,, наконец, получая

"word", "word", "word"

Очевидно, что я мог бы просто сделать это с помощью двух простых команд поиска (f) / replace (r) (f: ([a-z]*\>) r: "$1"; f: [space]| r: ,), но есть ли способ сделать все это одновременно?

Я испробовал множество разных идей, но все они провалились.Самым успешным было найти ([a-z]*\>)(( \|)|\R) и заменить на "$1",, что только дало мне формат "word", "word", word.Решение, вероятно, либо намного сложнее, либо гораздо проще, чем я пытаюсь, но я в тупике.Спасибо!

1 Ответ

0 голосов
/ 27 ноября 2018

Вы можете использовать

(\w+)|\s*\|

и заменить на (?1"$1":,).

Подробности

  • (\w+) - Группа 1: одно или несколько символов слова
  • | - или
  • \s*\| - 0+ пробелов и затем | char.
  • (?1"$1":,) - условноешаблон замены, который заменяется на " + содержимое группы 1 + ", если группа 1 соответствует, в противном случае заменяется на ,.

enter image description here

...