В основном ...
Я пытаюсь ввести в строке собственный регистр; Я потратил несколько часов на борьбу с Regex безрезультатно ...
Требование:
Мне нужно использовать заглавные буквы:
- Если первое слово> 3 символов: первая буква первого слова.
- Если последнее слово> 3 символа: первая буква последнего слова.
- Всегда: первая буква после дефиса или апострофа.
(Последнее регулярное выражение должно быть реализовано в VB6)
Examples:
anne-marie > Anne-Marie // 1st letter of first word + after hyphen
vom schattenreich > vom Schattenreich // 1st letter of last word
will it work-or-not > Will it Work-Or-Not // 1st letter of outer words + after hyphens
seth o'callaghan > Seth O'Callaghan // 1st letter of outer words + after apostrophe
first and last only > First and last Only // 1st letter of outer words (excl. middle)
sarah jane o'brien > Sarah jane O'Brien // 1st letter of outer words (excl. middle)
Что у меня есть на данный момент:
Я смешал два регулярных выражения, которые почти могут выполнить то, что мне нужно. Однако мои попытки объединить их или написать как единое регулярное выражение потерпели неудачу.
Моя основная трудность заключается в том, что часть моего использования заглавных букв применяется только к первому и последнему словам, тогда как заглавные буквы, специфичные для пунктуации, должны применяться ко всей строке. Но я недостаточно знаю о регулярных выражениях, чтобы быть уверенным, что это возможно с одним выражением.
Мое регулярное выражение:
Первая буква первых и последних слов, но не ограничивается слова более 3-х символов и не обрабатывают полную строку пунктуации заглавными буквами
^([a-zA-Z]).*\s([a-zA-Z])[a-zA-Z-]+$
Первая буква всех слов и после знаков препинания , где более 3 символов, но не исключает средние слова или обрабатывает знаки препинания в конце
(\b[a-zA-Z](?=[a-zA-Z-']{3}))
Вопрос
Как я могу объединить эти два регулярных выражения для удовлетворения моих требований или исправить их достаточно, чтобы их можно было использовать по отдельности? В качестве альтернативы предоставьте другое регулярное выражение, отвечающее требованиям.
Справочный / соответствующий исходный материал:
Первое слово и первое буква последнего слова строки с регулярным выражением