所以...我有一个 STL vector ,需要使用用户提供的字符串进行搜索/过滤。 (只是提到这一点,以防在这个特定用例中有特定/更好的方法来做到这一点)
目前(这段代码是旧的)它是通过迭代它并用正则表达式匹配每个元素以查看它是否匹配来完成的。
然而,我们的问题源于重音字符。我们期望的行为是搜索匹配字符串而不考虑变音符号(即“telefono”也匹配“teléfono”,反之亦然)
是否有一种合适的方法来做到这一点,理想情况下无需求助于 boost 以外的库?
最佳答案
在询问有关字符串匹配(即 UTF-8 等)的问题时,了解字符编码是什么会很有帮助。据说处理变音符号的一种方法是在执行字符串之前将它们替换为等效的纯字符比较。您的匹配数据库将不包含任何变音符号,您将在比较之前清理您的搜索输入字符串。
关于c++:搜索忽略重音字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47663203/