Извлечение значений регулярных выражений (совпадение регулярных выражений) в синей призме - PullRequest
0 голосов
/ 05 сентября 2018

В Blue Prism мне нужно идентифицировать конкретные элементы элемента данных (текста), чтобы использовать информацию позже в моем процессе.

Текстовая строка гласит:

REKVISITION_NR: 1234567 Дата: 23-07-2018 Реквирент: ABC, DEF GHI, JKL 60, 8600 MNO Sted: JKL 60, 8600 MNO, Kl.:14:00:00, Bestilt_tid: 60 мин. Tolkensnavn: PQR STU Koert_fra: VXY, 8600 Silkeborg Vedr .: Z CPR: 123456-7890 Sprog: Arabisk Тип: Personlig fremmøde Godkendt: 24-07-2018

Как видите, у каждого элемента есть эти черты (например, Kl. : 14: 00: 00 или Sprog : Arabisk ):

  • Имя строки (начиная с заглавной буквы)
  • Опционально, символ точки (.)
  • Символ двоеточия (:)
  • Опционально, пробел ()
  • Часть значения строки
  • Символ пробела (), за которым следует следующий элемент.

Я считаю, что должен использовать Business Object Utility - Strings 'action Извлечь значения регулярных выражений , но не удалось сопоставить данные, которые можно скопировать в Именованные значения -коллекция. Тем не менее, я обнаружил, что ([A-Z])\w+\.?: ?(\w(\d\-){0,3})+ приносит мне некоторые пути с точки зрения соответствия. Я хочу, чтобы решение скопировало имена полей и значения в коллекцию именованных значений, созданную действием.

Заключительные замечания: я использую Blue Prism 6.2.1, а базовый код действия основан на методе Vge.net Regex.Match .

1 Ответ

0 голосов
/ 05 сентября 2018

Чего вам не хватает, так это фактических именованных групп. Чтобы получить значения в коллекции Blue Prism, вам необходимо убедиться, что вы назначили правильные имена групп, например:

(?<YourGroupName>[A-Z])

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

(?<Name>\b\S*?):\s(?<Value>.*?)\s*(?=(?:\b\S*?:\s)|$)

Вы также можете проверить и протестировать здесь .

РЕДАКТИРОВАТЬ: Но имейте в виду, что оригинальный код Blue Prism для извлечения нескольких значений в коллекцию едва ли пригоден для использования, возможно, вам лучше изменить его или создать свой собственный. Например, от такого действия я бы ожидал коллекцию, в которой каждая строка будет соответствовать шаблону, а каждый столбец - именованной группе. К сожалению, это не то, как работает действие по умолчанию.

РЕДАКТИРОВАТЬ: enter image description here

...