【发布时间】:2015-02-04 12:03:55
【问题描述】:
我有一个全文搜索,我只需要一个连接字符,但有时我会收到多个。
例如
为了搜索Java Objects,客户端将空格替换为+,因此服务器搜索Server+Objects。这一切都很好,但有时用户会输入Java Objects,这将作为Java+++Objects 到达服务器,我的全文搜索失败。
我需要用一个+ 替换所有出现的+++,记住我可能会收到类似Java+++Objects++With+Names+like++++Abstract 的查询。
我可以编写一些代码来去除它们,但我知道做一个正则表达式会更干净,但我没有花太多时间学习它们。
【问题讨论】:
-
应该替换哪些字符?我假设这不包括字母和数字。
-
如果
Java Objects以Java%20%20%20Objects的身份到达服务器怎么办? -
这只是需要替换的 + 字符,因为客户端用 + 替换任何空格,但它是用户输入的值。全文搜索只是一个 postgresql 全文搜索,其中 + 用作单词分隔符。所以 Java%20%20%20Objects 将只是一个单词。
-
我的答案也适用于“%20”之类的多个实例。
标签: regex