regex - 用于替换多次出现的字符的正则表达式,其中一个字符留为空白

标签 regex solr wildcard

我想在solr中实现通配符查询。我希望当我搜索 query= ****diamond 时,它应该搜索whiltediamond 等。即所有 '*' 都应该替换为 '' (空白)除了 1 * 即。它应该以 *diamond 运行,我正在使用

query=query.replace(/[^a-zA-Z 0-9 * ? :  .]+/g,'');

它表示除 *?:. 以外的所有特殊字符”。现在我想对其进行转换,因为它应该替换所有 *,留下一个 *''。 比什么应该是正则表达式。

最佳答案

您的正则表达式应执行以下操作:
仅用一个星号替换任意数量的星号:

query=query.replace(/\*+/,'*');

关于regex - 用于替换多次出现的字符的正则表达式,其中一个字符留为空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6569415/

相关文章:

javascript - 正则表达式只返回第一场比赛?

java - 如何从字符串中拆分电子邮件

c++ - 最大字符限制条件和最小字符放置条件

java - Solr 索引时间 32 位与 64 位

solr - 限制 Solr 中 MoreLikeThis 的输出

SQL LIKE 运算符和通配符

java - 匹配字符串第一次出现的正则表达式是匹配最后一次出现的

java - Solr 中的修剪空格并忽略哈希符号

bash - shell UNIX : grep wild card

java - 与通过通配符(星号)导入相比,导入单个类的编码风格优势