【发布时间】:2013-06-22 17:56:06
【问题描述】:
我想知道如何使用正则表达式函数在地图中查找项目。就我而言,我有一个 map,其中包含 en*、es*、en-AU 等表达式,并且我有一个 string 可能的值,例如 en、en -US、en-GB、es-CL 等。
我想使用该字符串进行搜索以在地图中找到该项目。 首先寻找没有通配符的密钥,然后寻找有通配符的密钥作为第二优先级。
请帮我解决这个问题,或者如果这是低效的,或者如果有人有不同的方法,请告诉我另一种方法。我将 C++ 与 boost 和 stl 一起使用。
【问题讨论】:
-
您的意思是您的地图中有 键 要使用正则表达式搜索,还是您的地图中有 值要搜索吗?
-
无论哪种方式,您都必须手动遍历所有键/值并搜索每个键/值。
-
嗨,欢迎来到堆栈溢出。您可能想阅读“how to ask”常见问题解答以帮助您提出问题,从而帮助我们帮助您。
-
en*、es*等表达式看起来像通配符,而不是正则表达式。等效的正则表达式为^en.*、^es.*。 -
您所说的地图是指
std::map还是任何关联容器?需要通用通配符,还是只需要通配符的确切模式?您是否可以控制容器的定义方式?我们在谈论多少个条目——10、1000、100000、10000000、1000000000 等等?