Регулярное выражение Nintex — совпадение фамилии и имени

Попытка извлечь группу текста с помощью регулярных выражений в Nintex Workflow.

Оригинальная строка:

Bishop-Miller, David (EM MS SUS OPS-ULT BI)

Требуемый вывод:

Bishop-Miller, David

Также нужно, чтобы он захватывал имена людей, которые могут иметь дефисы или апострофы и без начального пробела.

Я пробовал это регулярное выражение:

^([^ ]+[ ][^ ]+)

Это не работает, если строка:

Bishop Miller, David (EM MS SUS OPS-ULT BI)

Как бы я изменил регулярное выражение, чтобы оно соответствовало этому требованию?


person Rob Thornley    schedule 04.07.2018    source источник
comment
В чем ваша проблема? Пожалуйста, поделитесь шаблоном, который вы пробовали, и типом действия, которое вы используете. Вы просто пытаетесь удалить весь текст внутри последних скобок?   -  person Wiktor Stribiżew    schedule 04.07.2018
comment
Я пробовал это: ^([^ ]+[ ][^ ]+)   -  person Rob Thornley    schedule 04.07.2018
comment
Так в чем проблема? Посмотрите здесь, это работает.   -  person Wiktor Stribiżew    schedule 04.07.2018
comment
Что делать, если строка: епископ Миллер, Дэвид (EM MS SUS OPS-ULT BI). Как бы я изменил регулярное выражение, чтобы оно соответствовало и этому требованию.   -  person Rob Thornley    schedule 04.07.2018


Ответы (1)


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

(?<=^\s*)[^(]*[^\s(]

См. демонстрация регулярного выражения.

Подробнее

  • (?<=^\s*) - положительный просмотр назад, который соответствует местоположению, непосредственно предшествующему 0+ пробелам в начале строки
  • [^(]* - 0 или более символов кроме (
  • [^\s(] - символ, отличный от ( и пробела.

Используйте его с операцией Extract.

person Wiktor Stribiżew    schedule 04.07.2018