Sublime Text - конвертировать текст в формат JSON - PullRequest
0 голосов
/ 10 апреля 2019

У меня есть текстовый файл, который выглядит примерно так:

Reference: 10001
Title: This is a text file
Description: A text file containing some simple strings
<0x0c>
Reference: 10002
Title: This is an xml file
Description: An xml file containing some generic data
<0x0c>

В основном, где я вижу шаблон типа <word>: Я хотел бы вставить " до и после <word>, затем id хотел бы вставить " до и после значения, за которым следует ,, как это :

"Reference" : "10001",

Пока я могу получить всю строку, используя следующее регулярное выражение:

^.*(Reference:|Title:).*$

Но мне интересно, есть ли лучший способ выбрать только нужный мне текст, а затем выполнить необходимое преобразование.

1 Ответ

4 голосов
/ 10 апреля 2019

Если вы не хотите сопоставлять всю строку, а только текст, вы можете использовать 3 группы захвата и использовать границы слов \b:

\b(Reference|Title)(:\s*)(\d+)\b
  • \b(Reference|Title)Граница слова, захват в группе 1 или Ссылка или Заголовок
  • (:\s*) Захват в группе 2 двоеточия и 0+ пробелов
  • (\d+)\b Захват в группе 3 1+ цифр с последующимграница слова

В замене используйте 3 группы захвата и окружите первую и третью двойными кавычками:

"$1"$2"$3"

Regex demo

...