Мне нужна помощь с моим регулярным выражением.
Мой код выглядит так (я не очень далеко зашел):
$source_file = "\\server\minified.txt"
$sf_content = gc $source_file -raw
$sections = $sf_content | select-string -AllMatches '(?smi)(^\s+\d+:\d+\s+AM\s+\w+\s+ACCOUNT ACTIVITY\s-\s)(\w+\s+\w+$)(.+?(Start Account\s\d+)(.+?Elapsed))'
$sections
Файл выглядит так:
Мне удалось получить имя и фамилию с помощью моего регулярного выражения из строки «ACCOUNT ACTIVITY - PERSON'S NAMEHERE», обведенной красным в верхней части изображения, показанного выше.
Моя конечная цель - иметь возможность преобразовывать синюю рамку в соответствие, получая всю информацию от даты в верхнем левом углу до «1 учетных записей, работающих в час». Затем я хочу получить информацию из 2-го красного кружка. Я хотел бы получить время начала в начале этой строки, а затем найти последний экземпляр той же строки «Начальная учетная запись 54321234», чтобы я мог взять последний раз минус первый раз.
Итак, для каждого синего поля получите информацию из красных кружков. Для каждого красного кружка, содержащего «Начать учетную запись», возьмите синий кружок минус зеленый кружок.
Я хотел бы попробовать это с помощью групп регулярных выражений. Если я не могу это понять, я хотел бы поместить каждое из моих регулярных выражений синего ящика в массив, и для каждого элемента в массиве я могу дополнительно использовать регулярное выражение, чтобы получить то, что я хочу.
Мой код не завершено. Но я не уверен, как делать регулярное выражение, поэтому буду обновлять его по мере обновления скрипта и проведения собственного исследования.
Если у кого-то есть указатели, я был бы признателен.
Вот исходный контент в текстовой форме:
05/07/20 Acme, Inc. PAGE 1
9:48 AM ABC ACCOUNT ACTIVITY - Bart Simpson
The time ELAPSED since the previous line is printed as HOURS:MINUTES:SECONDS.
DATE TIME ELAPSED ACTION
04/16/20 8:06:50 0:00 Enter Account Screen
-------------------------------------------------------------------------------
8:06:53 0:03 Start account 12345678 ROSS, BOB N
8:07:24 0:31 Finished account in 31 seconds
-------------------------------------------------------------------------------
8:07:26 0:02 Start account 54321234 DOE, JOHN
8:07:27 0:01 Finished account in 1 seconds
-------------------------------------------------------------------------------
8:07:28 0:02 Start account 54321234 DOE, JOHN
8:10:26 0:01 Finished account in 1 seconds
-------------------------------------------------------------------------------
05/06/20 4:55:49 5:08 Leave Account Screen 9:33 Elapsed
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
05/06/20 4:55:55 0:06 Leave Account Screen
-------------------------------------------------------------------------------
DAILY TOTALS
5:33:46 - Time on Account screen for the day.
3 Calls 1 Calls per hour
3 Contacts 1 Contacts per hour
3 Accounts worked 1 Accounts worked per hour
05/07/20 Acme, Inc. PAGE 1
9:48 AM ABC ACCOUNT ACTIVITY - Lisa Simpson
The time ELAPSED since the previous line is printed as HOURS:MINUTES:SECONDS.
DATE TIME ELAPSED ACTION
04/16/20 8:06:50 0:00 Enter Account Screen
-------------------------------------------------------------------------------
8:06:53 0:03 Start account 6543212 DOE, JANE
8:07:24 0:31 Finished account in 31 seconds
-------------------------------------------------------------------------------
8:07:26 0:02 Start account 88888888 DEER, JOHN
8:07:27 1:01 Finished account in 1 seconds
-------------------------------------------------------------------------------
05/06/20 4:55:49 5:08 Leave Account Screen 10:33 Elapsed
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
05/06/20 4:55:55 0:06 Leave Account Screen
-------------------------------------------------------------------------------
DAILY TOTALS
5:33:46 - Time on Account screen for the day.
3 Calls 1 Calls per hour
3 Contacts 1 Contacts per hour
3 Accounts worked 1 Accounts worked per hour