我需要创建一个与单词空白单词匹配的常规表达式,它不能以空格开头,单词和单词之间的空格不能超过1个,我必须在每个单词的字母和重音符号上使用,我正在使用此模式:
^([^\+\*\.\|\(\)\[\]\{\}\?\/\^\s\d\t\n\r<>ºª!@"·#~½%¬&=\'¿¡~´,;:_®¥§¹×£µ€¶«²¢³\$\-\\]+\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字符的名字+空格+姓氏
是一种验证。并且我必须排除所有特殊字符,例如/ *-+)(!/($ =
答案 0 :(得分:1)
对于仅空格,请使用 str_replace :
$string = str_replace(' ', '', $string);
对于所有空格,请使用 preg_replace :
$string = preg_replace('/\s+/', '', $string);
答案 1 :(得分:1)
您可以尝试以下模式:^[\x{0041}-\x{02B3}]+\s[\x{0041}-\x{02B3}]+
。
说明:由于您使用的字符与\w
不匹配,因此必须定义自己的单词字符范围。 \x{0041}
只是Unicode索引等于0041
的字符。