您好所有,PHP - 字词过滤器
我想使用的preg_match,以确定是否一个字的文本字符串中找到。如果单词中每个字符有多个实例(按正确的顺序),则需要拾取该单词。为了让自己的生活变得艰难,即使客户试图通过在我希望匹配的单词中输入某些字符来'愚弄'preg_match,我也想要接受这个单词。
它用于swearword过滤器,如果'dave'被发现,我会用其他东西替换它。我试图想出完美的正则表达式,但我没有太多的运气。请看下面的例子以及我迄今发现的问题(我用3作为客户端可以用来'欺骗'支票的一个例子字符);
使用:~\b(?:3+)?d+(?:3+)?a+(?:3+)?v+(?:3+)?e+(?:3+)?\b~i
好
- 输入:戴夫=传递
- 输入:3d3a3v3e3 =传递
- 输入:ddddaaaavvvveeee =传递
- 输入:3ave =失败
不行
- 输入:dd3ddaa3aa3vv3vvee3ee =失败(我想这个通过)
使用:~\b[d3]+[a3]+[v3]+[e3]+\b~i
好
- 输入:戴夫=传递
- 输入:3d3a3v3e3 =传递
- 输入:ddddaaaavvvveeee =传递
- 输入:dd3ddaa3aa3vv3vvee3ee =传递
不行
- 输入:3ave =通(我想这个失败)
感谢您对正则表达式的帮助,它的大加赞赏。
如果密码是“matthew”,该怎么办? mmmmaaaatttthhhheeeewwww – 2011-06-11 21:54:03