正则表达式替换双引号和单引号

时间:2014-08-22 15:59:37

标签: regex sphinx

我正在我正在开发的网站上使用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"perspa'pers

所需的输出:examination papersexamination paperspaperspaperspapers

我已尝试暂时将上面列出的示例中的-替换为",但即使这样也无效。

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

1 个答案:

答案 0 :(得分:1)

您可以使用以下表达式:

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

这将匹配以下文字:

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

然后您可以使用此正则表达式替换您的引号:

替换表达 - /["']/

替换字符 - empty

所以,你的输出将是:

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

作为这个答案的背景。我从您正在使用的工具中了解到,您的匹配表达式会收集一个结果集,您可以在其中应用另一个正则表达式(替换表达式),该表达式将替换与匹配的内容替换字符