|
|
1
6
欢迎来到正则表达式的世界。您基本上需要使用preg\u replace来查找(一些模式)并替换为字符串。 这里有一些东西可以让你开始:
这将查找:
并替换为字符串[已阻止]。 这抓住了我能想到的所有明显的组合:
然而,它也会去掉任何连续的6+数字,这可能是不可取的! |
|
|
2
0
要做到这一点,您可能知道,必须使用正则表达式。 我发现这种模式可能对您的项目有用:
有关此模式的更多信息,请参见此处 http://gskinner.com/RegExr/?2rirv 你甚至可以在线测试它。这是测试正则表达式的一个很好的工具。 |
|
|
3
0
如果在主题中找到模式,preg\u match($pattern,$subject)将返回1(true),否则返回0(false)。 与您给出的示例匹配的模式可能是“/\d{3}-\d{3}\d{4}/” 然而,无论你为你的模式选择什么,都会受到误报和漏报的影响。 您还可以考虑在号码旁边查找mob、cell或tel等词。 php模式匹配的填充详细信息可以在 http://www.php.net/manual/en/reference.pcre.pattern.syntax.php 伊恩 p、 正如斯肯索普的人会告诉你的那样,这不能用于恶语。 |
|
|
4
0
我认为使用过紧的正则表达式会导致大量检测丢失。 您应该检查10个包含5个以上数字的连续聊天符的部分。 因此,由于计算权重的原因,您将有一个analisys例程排队等待在任何消息插入后调用。 在分离出6个或更多数字后,根据您的喜好替换它们,包括其他合成数字。 无论如何,最好保留原始数据,这样您就可以尝试并训练检测算法,直到它以最佳方式工作。 然后,您还可以研究您的用户数据以创建更复杂的euristics,例如不区分大小写的数字,如字母、混合、点分隔等。。。 这不是要写出最完美的正则表达式,而是要从统计和逻辑上解决问题。 请记住,在您采取行动后,用户将改变其插入习惯,因此统计数据将发生变化,您需要学习和更新您的euristics。 |