Я пытаюсь найти регулярное выражение, которое покрывает много результатов, тот, который я использую сейчас, будет достаточным, если бы не было много международных имен, имеющих специальные буквы в них как дефис.Regexp для строки имени
Один я использую в настоящее время выглядит следующим образом:
/^[A-Za-zåäöÅÄÖ\s\-\ ]*$/
Это позволяет дефисов и пробелов, но и позволяет им в начале или в конце строки, которые я не хочу, чтобы позволить.
Мне нужно изменить это, чтобы позволить:
éýÿüåäö
и т.д. (желательно, не имея писать их все вручную)-
дефисы между словами, но не до или после полной строкиОн не должен допускать п которые он еще не сделал. Поскольку я не работал много с конструкцией регулярных выражений, я в темноте о том, как этого достичь, я нашел много решений, которые покрывают тот или иной сценарий, но не все из тех, которые мне нужны , Я был бы признателен за помощь. Регулярное выражение должно работать для проверки PHP.
EDIT:
$fname = 'Scrooge Mc-Duck'; //Only example string
$fname = trim($fname);
if (!preg_match('/^\p{Lu}\p{Ll}+([ -]+\p{Lu}\p{Ll}+)*$/', $fname)) {
$fnameErr = 'Invalid first name';
}
Это выводит сообщение об ошибке при использовании раствора @ npinti в.
Какой двигатель/платформа для регулярных выражений? –
@AlexK. Я использую PHP для проверки того, что вы имеете в виду. – Chrillewoodz
См. '\ P {L}' @ http://php.net/manual/en/regexp.reference.unicode.php & http://www.regular-expressions.info/unicode.html –