You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP新手求助:正则表达式如何排除$£*并允许合法字符

嘿,这个正则需求很清晰,我来给你几个可行的方案!

方案1:直接定义允许的字符集(最推荐)

既然你明确只允许小写字母、大写字母和数字,那直接把这些字符放进正则的字符集里就好——这样$、£、*这些不在集合里的字符自然就被排除了。

如果是要验证整个输入字符串都由允许的字符组成,正则表达式如下:

^[a-zA-Z0-9]+$
  • ^ 匹配字符串的开头
  • [a-zA-Z0-9] 匹配任意小写字母、大写字母或数字
  • + 确保至少有一个字符(如果允许空输入,把+换成*就行)
  • $ 匹配字符串的结尾

方案2:用负向前瞻强制排除指定字符

如果你的场景需要更灵活(比如未来可能允许其他字符,但始终要排除这三个),可以用负向前瞻来确保输入中完全不包含$、£、*:

^(?!.*[$£*])[a-zA-Z0-9]+$
  • (?!.*[$£*]) 这部分是负向前瞻,意思是“整个字符串里不能出现$、£、*中的任何一个”
  • 后面的[a-zA-Z0-9]+和方案1一样,确保只有允许的字符

针对你现有代码的修改

如果你之前的代码是把允许的字符和这三个排除字符混在一起了(比如类似[a-zA-Z0-9$£*]),那只需要把$、£、*从字符集里删掉,改成[a-zA-Z0-9]就可以达到需求啦。

内容的提问来源于stack exchange,提问作者Mark Fenwick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:02:55