[SOLVED] Regular Expression, always capital letter after "-"

Issue

I have a regular expresion like:

@"^[A-Z][a-z\-\']+((\s[A-Z][a-z\-\'\.]*)?)+(\s[A-Z][a-z\-\'\.]*)?"

which allows a name to be written like Name, Name LastName or Name LastName LastName. I added the special characters ', -,. for special names. But i want to add the condition that after the ‘-‘ the letter could be capital. But only after the dash. Nowhere else in the word, execptin the beggining. Any ideas?

Solution

This regex would meet your dash criteria, although I can’t speak for other naming variations that might be prevented.

^(?:[“"]?[A-Za-z][a-z]*["”'.,]?(-[A-Z][a-z]+)?(?: (?!$))?)+$

It matches the following:

Leonardo da Vinci
Leonardo di ser Piero da Vinci
Tony “The Tiger”
Tony "The Tiger"
Cynthia Ann Stephanie Lauper Thornton
Madonna
John McClane
Notorious B.I.G.
John Thomas
Mary-Kate Olsen
JP Morgan
O'Doul's Amber

It does NOT match the following:

Mortimer Snerd-
Bobby Bones-BReaker

Answered By – phatfingers

Answer Checked By – Marie Seifert (BugsFixing Admin)

Leave a Reply

Your email address will not be published. Required fields are marked *