我试图找到一个覆盖很多结果的正则表达式,我现在使用的正则表达式就足够了,如果它不是很多具有特殊字母的国际名称作为连字符。正则表达式的名称字符串
我现在使用的一个看起来是这样的:
/^[A-Za-zåäöÅÄÖ\s\-\ ]*$/
它允许连字符和空格,但它也可以让他们在我不希望允许字符串的开始或结束。
我需要修改这个允许:
éýÿüåäö
等(最好是通过不将它们全部手工编写)在每个新词的开头-
词与词之间的连字符,而不是之前或满弦后它不应该让N的空白尚未成为会员。由于我没有用过很多正则表达式构造,所以我在黑暗中如何实现这一点,我发现了很多涵盖其中一种或另一种场景的解决方案,但不是我需要的那些全部 。我将不胜感激这项援助。正则表达式应该适用于PHP验证。
编辑:
$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 –