Скопируйте часть текста в файл и вставьте куда-нибудь еще в ту же строку в файле - PullRequest
0 голосов
/ 14 декабря 2018

У меня есть текстовый файл (файл .cs) с некоторой информацией, которую я хочу скопировать из этого файла в другое место в той же строке в файле.

Например, у меня есть что-то вроде:

Random text here { Name = "Important - info", UniqueId = "1110100", More random text};
Random text here { Name = "More Important (info)", UniqueId = "1110101", More random text};
Random text here { Name = "Other Important info", UniqueId = "1110102", More random text};
.
.
.
Random text here { Name = "Other Important info 4/11", UniqueId = "2000110", More random text};

и я хочу, чтобы числа после UniqueId копировались и помещались в конце имени в той же строке, как и

Random text here { Name = "Important - info 1110100", UniqueId = "1110100", More random text};
Random text here { Name = "More Important (info) 1110101", UniqueId = "1110101", More random text};
Random text here { Name = "Other Important info 1110102", UniqueId = "1110102", More random text};
.
.
.
Random text here { Name = "Other Important info 4/11 2000110", UniqueId = "2000110", More random text};

До тех пор, пока после пробелацитируемое имя, а затем уникальный идентификатор.Имя может быть любым, UniqueId уникален для каждого имени и каждой строки.Возможно ли это?Я попробую любую программу для Windows.

1 Ответ

0 голосов
/ 20 декабря 2018

Вы можете выполнить то, что вы просите, используя любой текстовый редактор, поддерживающий Regex.В этом примере я буду использовать Notepad ++.Сначала я опишу, что делать, затем объясню, что делает Regex.

Пример

  1. Откройте файл с помощью Notepad++.
  2. Нажмите Ctrl+F, чтобы открыть окно Search and Replace.
  3. Обязательно установите флажок с именем Wrap around
  4. Выберите Regular expression в Search Mode
  5. Под Find What: вставить Name = "(.*)", UniqueId = "(\d+)"
  6. Под Replace with: вставить Name = "$1 $2", UniqueId = "$2"
  7. Нажмите Replace all один раз.

Npp-with-regex

Понимание регулярного выражения

  • () эти символы представляют группу, которую вы хотите захватить.
  • $1 представляют первую группу, которую вы пометили ()
  • $2 то же самое, но для второй группы.
  • \d соответствует any digit.+ после цифры означает совпадение с одной или несколькими цифрами.
  • . соответствует any character.* после того, как точка означает совпадение с нулем или более символов.

В примере поиска Name = "(.*)", UniqueId = "(\d+)" у нас есть две группы.Сопоставление содержимого между кавычками Name и UniqueId.

В примере замены Name = "$1 $2", UniqueId = "$2" мы используем эти группы для замены того, что мы сопоставляем, чем-то новым.Новым в этом случае является содержимое группы $1 и группы $2.

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