【问题标题】:Regular expression replace double and single quotes with nothing正则表达式用空替换双引号和单引号
【发布时间】:2014-08-23 00:52:43
【问题描述】:

我正在开发的网站上使用 sphinx 搜索模块,并且可以选择输入正则表达式以替换为指定字符。

可用的选项有Match ExpressionReplace ExpressionReplace Char(这些是CMS 管理面板中的输入字段,所以很遗憾我不确定幕后使用的实际代码功能)。我的理解是搜索与Match Expression 匹配的任何表达式,并将Replace Expression 中指定的表达式替换为Replace Char 中指定的表达式。所以这是一种查找和替换匹配项的方法。

一些有效的例子:

示例 1

匹配表达式: /[a-zA-Z0-9]*-[a-zA-Z0-9]*/

替换表达式: /-/

替换字符:

匹配文本:SX500-123GLX-11AGLZX-VXVGLZ/123GLZV 123CNC-PWR1

结果文本:SX500123GLX11AGLZXVXVGLZ/123GLZV-123-123CNCPWR1

这里有更多示例: http://mirasvit.com/doc/ssp/2.3.2/ssp/global/long_tail


我想要做的是从搜索查询中删除任何单引号或双引号或撇号。

示例输入:"examination papers",'examination papers,'examination' "papers",pa"pers,pa'pers

所需输出:examination papers,examination papers,papers,papers,papers

我暂时尝试在上面列出的示例中将- 替换为",但即使这样也没有用。

任何帮助将不胜感激!谢谢

【问题讨论】:

    标签: regex sphinx


    【解决方案1】:

    你可以使用这些表达方式:

    匹配表达式 - /["'][\w\s]+["']|\w+["']\w+/

    这将匹配以下文本:

    "examination papers",'examination papers','examination' "papers",pa"pers,pa'pers
    

    然后你可以使用这个正则表达式来替换你的引号:

    替换表达式 - /["']/

    替换字符 - empty

    所以,你的输出将是:

    examination papers,examination papers,examination papers,papers,papers
    

    作为此答案的上下文。我从您使用的工具中了解到,您的 ma​​tch expression 收集了一个结果集,您可以在其中应用另一个正则表达式(Replace expression)来替换与 匹配的内容替换字符

    【讨论】:

    • 这是她在问题中描述的替换表达式中的内容吗?
    • @RobertHarvey Robert,她从页面复制/粘贴了一个示例。我从她那里了解到What I want to do is strip any single or double quotes or apostrophes from a search query。顺便说一句,她还输入了输入和所需的输出。我错过了什么吗?
    • 我刚刚尝试在匹配表达式和替换表达式字段中同时输入 ["'] 和 /["']/,但没有成功。
    • @Sarah 匹配表达式不会改变。永远是/[a-zA-Z0-9]*-[a-zA-Z0-9]*/
    • @Fede:我只是觉得我们缺少一些基本的东西,因为你的答案似乎很明显。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-20
    • 2012-11-24
    相关资源
    最近更新 更多