我需要将结构与一组模式进行匹配,并为每次匹配采取一些措施。
模式应该支持通配符,我需要确定哪些模式与传入结构匹配,示例集:
action=new_user email=*
action=del_user email=*
action=* email=*@gmail.com
action=new_user email=*@hotmail.com
可以实时添加/删除这些模式。可能有数千个连接,每个都有自己的模式,我需要通知每个连接我收到了一个匹配的结构。模式不是完全正则表达式,我只需要将字符串与通配符 * 匹配(简单匹配任意数量的字符)。
当服务器接收到具有结构的消息(我们称之为消息 A)action=new_user email=testuser@gmail.com
并且我需要找出模式 1 和 3 与此消息匹配时,我应该对每个匹配的模式执行操作(将此结构 A 发送到相应的连接)。
如何以最有效的方式做到这一点?我可以迭代这些模式并逐一检查,但我正在寻找更有效和线程安全的方法来做到这一点。可能可以对这些模式进行分组以减少检查。有什么建议可以做到这一点吗?
UPD:请注意我想要匹配乘法模式(数千)与固定的“字符串”(实际上是一个结构),反之亦然。换句话说,我想找出哪些模式适合给定的结构 A。