У меня есть следующие типы строк.
BILL SMITH (USA)
WINTHROP (FR)
LORD AT WAR (GB)
KIM SMITH
С этими строками у меня есть следующие ограничения:
1. все заглавные буквы
2. может быть от 2 до 18 чартеров
3. не должно быть пробелов или возврата каретки в конце
4. аббревиатуру страны в скобках следует исключать
5. у некоторых имен не должно быть страны в скобках, и они тоже должны совпадать
После применения моего регулярного выражения я хотел бы получить следующее:
BILL SMITH (USA) => BILL SMITH
WINTHROP (FR) => WINTHROP
LORD AT WAR (GB) = LORD AT WAR
KIM SMITH => KIM SMITH
Я придумал следующее регулярное выражение, но я не нашел совпадений:
* * 1010
Я бился головой об этом некоторое время, поэтому, если кто-то может указать на ошибку, я буду признателен.
UPDATE:
Однако я получил несколько хороших ответов, но до сих пор ни одно из решений для регулярных выражений не удовлетворяло всем ограничениям. Хитрая часть, кажется, состоит в том, что некоторые строки имеют страну в скобках, а некоторые нет. В одном случае строки без страны не сопоставлялись, а в другом она возвращала правильную строку вместе с сокращением страны без скобок. (См. Комментарии ко второму ответу.) Одно уточнение: все строки, с которыми я буду сопоставлять, будут отправной точкой строки. Не уверен, помогает ли это или нет. Еще раз спасибо за вашу помощь.