[问题] 给字串找出第一个符合的glob

楼主: danny0838 (道可道非常道)   2017-09-22 22:48:18
如题,假设数据库有这样的键-值对:
{
"www.google.com": function A(){},
"*.example.com.*": function B(){},
"*.example.*": function C(){},
"www.*.com.*": function D(){},
"*.mycompany.*.com.*": function E(){},
...
}
语言是用 javascript。
现在希望对于任意给定的字串,
找出第一个符合的键执行对应的function。
例如给 "foo.example.com.tw" 要执行 function B
如果键是纯字串,做起来很简单,一个 Map 就解决,
但问题是现在的键可能是 glob pattern...
我知道可以用暴力法,
意即依序把每个键拿去和给定字串比对,
不过数据库大起来效能会较差,
想知道是否有时间复杂度较低的算法可用?

Links booklink

Contact Us: admin [ a t ] ucptt.com