正则表达式可以替换为这些条件编写的规则吗?


Can a regular expression replace rule being written for these conditions?

我试图向API提交一些信息,但我得到的错误消息之一是:

字段只能包含:大写字母(A-Z),数字(0-9),全停止符(.)、斜杠(/)、破折号(-)、& &;)和空格

在PHP中使用正则表达式,可以编写规则来替换除错误消息中指定的字符以外的任何字符吗?

我不擅长正则表达式,但我敢打赌这对其他人来说很容易!谢谢你。

我显然可以将整个东西设置为strtoupper(),所以我可以处理第一个位!

最简单的方法是使用preg_replace

示例:$str = preg_replace('/[^A-Z'd.'/'-&]+/', '', $str);

解释:

  • [^ a - z 'd/-&]+匹配下面列表中不存在的单个字符
    • 量词:+在一次到无限次之间,尽可能多的次数,根据需要回馈[贪心]
    • a -Z在a和Z之间的单个字符(区分大小写)
    • 'd匹配数字[0-9]
    • /匹配字符/字面上
    • -匹配字符-字面上
    • ,列表中的单个字符&字面意思(区分大小写)