Как я могу заставить мой Regex искать случайное количество чисел и затем одно слово? - PullRequest
0 голосов
/ 02 июля 2019

Я пишу сценарий PowerShell, который должен найти ссылки на файлы в другом файле и переместить их в правильное местоположение.

Я также пишу лог-файл, в который должны быть записаны имена пациентов и дата.

Теперь я застрял в создании строки регулярного выражения, которая ищет имя и дату. Название разбито на 2 строки. Я покажу пример того, как это выглядит. Помимо имени, мне также нужна дата рождения, которую я также покажу ниже.

Имена и дата рождения в файле выглядят следующим образом (изменено по понятным причинам):

0143101Mueller
0143101Tabea
017310316051923

Пример результата:

Name = Meuller Tabea
Date = 16.05.1923

Я пытался создать строку регулярного выражения, но она пока не работает.

Это моя текущая строка регулярных выражений:

^([0-9]+)([a-z].*i+.)

В данный момент он собирает материал, состоящий из нескольких слов, и кажется, что он не соответствует требуемой информации (имя и дата). Что мне нужно добавить к строке регулярного выражения, чтобы она искала только одно слово / пример, который я предоставила?

Ответы [ 2 ]

2 голосов
/ 02 июля 2019

Попробуйте шаблон: (\d+)([A-Za-z]+)\n\1([A-Za-z]+)\n\d+(\d{6})

Пояснение:

\d+ = соответствует одной или нескольким цифрам

[A-Za-z]+ - совпадение одной или нескольких букв (строчных или прописных)

\1 - сопоставить текст, совпадающий с первой группой захвата (чтобы гарантировать, что фамилии предшествует тот же номер)

\n - соответствует символу новой строки

\d{6} - соответствует ровно шести цифрам

Демо

0 голосов
/ 02 июля 2019

Я предполагаю, что это будет сделано:

^([0-9])+([A-Za-z])+

или:

^([0-9])+([A-z])+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...