当前位置: 首页 > 知识库问答 >
问题:

在QueryParser中解析非字母数字字符

阎德宇
2023-03-14

我正在使用Lucene 3.0编写一位前队友的代码。3.

有一个注释声称QueryParser不能处理“特殊字符”,处理的一种方法是用空格替换“特殊字符”:

if (((*pos) >= L'A' && (*pos) <= L'Z') ||
    ((*pos) >= L'a' && (*pos) <= L'z') ||
    ... ||
    (*pos == L'-'))
{
    // do nothing, these are OK
} else {
    // remaining characters are []{}*
    (*pos) = L' ';
}

StandardAnalyzer是正在使用的分析仪。(谢谢马克)

我假设“特殊字符”用于组合查询或某种通配符处理,因为缺少更好的术语。

有没有更好的函数可以解释查询字符串中的这些字符?

共有1个答案

昌学
2023-03-14

您需要查看使用了什么Analyzer,因为Analyzer确定使用的标记器(以及标记器确定哪些字符是特殊的)。

 类似资料:
  • 问题内容: 我想将以下字符串转换为提供的输出。 我还没有发现,将处理特殊字符,如任何解决方案,,,等。 基本上,我只是想摆脱所有不是字母数字的东西。这是我尝试过的… 尝试多个步骤 结果 任何帮助,将不胜感激。 工作解决方案: 问题答案: 删除非字母数字字符 以下是/正确的正则表达式,用于从输入字符串中去除非字母数字字符: 请注意,这等效于-它包括下划线字符。要删除下划线,请使用例如: 输入格式错误

  • 问题内容: 我需要从字符串中删除所有不在集合中或不是空格的字符。 有人有功能吗? 问题答案: 听起来您几乎已经知道自己想做的事情,基本上将其定义为正则表达式。

  • 我正在尝试验证一些输入以删除一组字符。只允许字母数字字符加、句点、下划线、连字符。我在这里测试了正则表达式http://gskinner.com/RegExr/它与我想要删除的内容匹配,所以我不确定为什么返回相反的内容。我错过了什么? 我的最终目标是输入并获得"。 我尝试过: 返回

  • 问题内容: 我有一个字符串,我想用一个星号替换任何不是标准字符或数字的字符,例如(az或0-9)。例如,“ h ^&ell`。,| ow] {+ orld”被替换为“ h * ell * o * w * orld”。请注意,多个字符(例如“ ^&”)将替换为一个星号。我将如何去做呢? 问题答案: 正则表达式可以解救! 例:

  • 问题内容: 我想计算以下字符串中的字母,数字和特殊字符的数量: 我试过了: 但我遇到了错误。我对此尝试了各种其他变化-仍然出现错误-如: 找不到’<=’的重载,该重载接受提供的参数 问题答案: Swift 3更新: (以前的Swift版本的答案) 一个可能的Swift解决方案: 更新: 上述解决方案仅适用于ASCII字符集中的字符,即不能将Ä,é或ø识别为字母。Foundation框架使用以下替代