创建带有字母和重音的正则表达式



我需要创建一个匹配单词空白单词的正则表达式,它不能以空白开始,单词和单词之间也不能有超过1个空格,我必须允许每个单词的字母和重音,我使用以下模式:

^([^+*.|()[]{}?/^sdtnr<>ºª!@"·#~½%¬&='¿¡~´,;:_®¥§¹×£µ€¶«²¢³$-\]+s{0,1}?)*$/

示例:

-Graça+whitespace+anotherWord            -> match
-whitespace+Graça+whitespace+anotherWord -> don't match
-Graça+whitespace+whitespace+anotherword -> don't match

一般来说,这是一种验证,允许名字+空白+姓氏加重音字符和a-z字符

我必须排除所有特殊字符,如/*-+((!/($=

您可以尝试以下模式:^[x{0041}-x{02B3}]+s[x{0041}-x{02B3}]+

说明:由于您使用的字符与w不匹配,因此您必须定义自己的单词字符范围。x{0041}只是一个unicode索引等于0041的字符。

演示

对于仅空格,请使用str_replace

$string = str_replace(' ', '', $string);

对于所有空白,使用preg_replace:

$string = preg_replace('/s+/', '', $string);

最新更新