gpt4 book ai didi

c# - 使用正则表达式处理 bool 短语

转载 作者:太空宇宙 更新时间:2023-11-03 22:11:19 25 4
gpt4 key购买 nike

我正在处理搜索页面上的用户输入。如果用户选择“所有单词”类型的搜索,那么我会从搜索文本中删除所有 bool 搜索运算符,并在每个真实单词之间添加 ' AND '。在大多数情况下非常简单。但是,我不知道如何连续删除两个 bool 运算符。

这是我的代码:

// create the regex
private static Regex _cleaner =
new Regex("(\\s+(and|or|not|near)\\s+)|\"",
RegexOptions.Compiled | RegexOptions.IgnoreCase);

// call the regex
_cleaner.Replace(searchText, " ")

当用户输入类似coffee and not tea 的搜索字符串时,就会出现问题。正则表达式将删除“and”,但不会删除“not”。生成的字符串是“coffeenot tea”——我想要的是“coffee tea”。

正则表达式中需要空格,因此当嵌入真实单词(如“band”或“corps”)时,我不会删除“and”、“or”等。

我通过两次调用 clean 方法暂时解决了这个问题,这将连续删除两个运算符(这可能是我所需要的)。但它不是很优雅,是吗?我真的很想做对。我觉得我缺少一些简单的东西......

最佳答案

尝试添加单词边界:

"\\b(and|or|not|near)\\b|\""

关于c# - 使用正则表达式处理 bool 短语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6525845/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com