Извлеките метки, которые повторяются с разными значениями, используя регулярные выражения в блокноте - PullRequest
0 голосов
/ 28 января 2019

Я пытался извлечь строки, которые повторяются по тексту, с одинаковыми метками, но разными значениями после =.Например, a хотел бы изолировать элемент Name (выделен жирным шрифтом в тексте), а затем информацию о YearsToPith и Radius из следующего текста:

00010131 DistanceToPith=15.0; YearsToPith=3; Radius=50.128; CalcRadius=Yes; 
00010131 PithCoordinates=60.919,6.071; SiteId=KO31; 
00010131 Location=Djerdap, GJ "Kožica" odeljenje 31; State=Srbija; 
00010131 SpeciesCode=QUPE; SpeciesName=Kitnjak, Quercus petrea; 
00010131 Personal_ID=Marko Kazimirovic; DateOfSampling=jesen 2013; 
00010131 Name=00010131; Written=2018-05-04 16:53:09; 
00010131 EarthCoord=E 44 35 N 21 58; Elev=450-465; 
00010131 Project=Radakovicev magistarski; 
00010132 DistanceToPith=6.7; YearsToPith=3; Radius=104.927; CalcRadius=Yes; 
00010132 PithCoordinates=108.974,27.022; Written=2018-05-04 17:09:35; 
00010132 SiteId=KO31; Location=Djerdap, GJ "Kožica" odeljenje 31; 
00010132 EarthCoord=E 44 35 N 21 58; Elev=450-465; State=Srbija; 
00010132 SpeciesCode=QUPE; SpeciesName=Kitnjak, Quercus petrea; 
00010132 Project=Radakovicev magistarski; Personal_ID=Marko Kazimirovic;
00010132 DateOfSampling=jesen 2013; Name=00010132;

Не имеет значения, извлекаются ли упомянутые элементы отдельно или все вместе.Лучше всего было найти информацию с помощью:

 (Name)+[=]+[19\d]+[;]

, но я не понял, как удалить текст до и после.

1 Ответ

0 голосов
/ 28 января 2019

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

Найти что : .*?(Name=\d+;).*\R*|.*\R* Заменить на : $1

Это удалит линии, у которых нет шаблона, подобного тому, который у вас есть, и сохранит первое вхождение этого шаблона в строке, содержащей совпадение.

Подробности

  • .*?(Name=\d+;).*\R*:
    • .*? - 0+ символов, кроме символов разрыва строки, как можно меньше
    • (Name=\d+;) - Группа 1: Name= и цифры 1+, а затем ;
    • .* - 0+ символов, кроме символов разрыва строки
    • \R* -0+ последовательностей разрыва строки
  • | - или
  • .*\R* - 0+ символов, кроме символов разрыва строки, сопровождаемых 0+ последовательностями разрыва строки.
...