正则表达式允许任何字母数字字符、任何带有重音符号和项目符号、破折号和下划线的字母

Regular expressions allow any alphanumeric characters, any letters with accents and bullets, dashes and underscore

我正在做一个可以允许任何字符的正则表达式:

1.任意大小写字母数字字符,包括ñ

2. 任意大小写字母,带重音符“áéíóú”

3. 任何大写和小写字母都带有项目符号“äëïöü”

4. 下划线

5. 破折号

6.

7.分号

8.换行

9. 删除任何特殊字符示例:¡?=)(/&%$#"!|°¬´+}{}.,;:_[] ¨*` 等...

10. 并指定最小和最大字符数,例如 0 到 75

我查了很多资料,找到了一些函数,但是为了实现这个我必须结合很多代码,我想用正则表达式来实现。

我正在做我自己的角色,直到现在我有一个允许任何字母数字字符、空格、破折号和点的功能,例如:

/^[a-zA-Z0-9_\-\. ]{0,75}+$/

我发现这个功能可以去除特殊字符:

function remove_characters_special($text = '') {    
    $text = preg_replace('~[^\pL\d\.]+~u', ' ', $text);
    return $text;
}

对重音字母和项目符号这样做有效吗?

/^[a-zA-Z0-9_\-\. áéíóúÁÉÍÓÚñÑäëïÖüÄËÏÖü]{0,75}+$/

如何完成这个功能?

感谢@bobble bubble,经过长时间的交谈,我得到了我需要的正则表达式,我会把它们分享给谁可以服务,如果他们需要在插入数据库之前过滤所有数据,即使是你接受逗号、分号和双点,此后您可以添加更多允许的特殊字符。

$text = "áéíóú ÁÉÍÓÚ äëïöüÄËÏÖÜ - _ , : ; ";
$pattern = '/^[,:;\pL\pN\s._-]{0,75}$/u';

if (!preg_match($pattern, $text)) {
    echo "No valid";
}   else {
    echo "valid";
}

其他例子:这些代码是我的例子,如果有PHP GURU有更简单的方法,会有所帮助。

1.未指定字符数。

$pattern = '/^[,:;\pL\pN\s._-]+$/u';

2。允许在不指定字符数的情况下使用双引号和单引号和括号。

$pattern = '/^[\'\'\"\"\(\),:;\pL\pN\s._-]+$/u';

@bobble bubble 非常感谢,我爱你:)