我正在我正在开发的网站上使用sphinx搜索模块,并且可以选择输入正则表达式以替换为指定的字符。
可用选项包括Match Expression
,Replace Expression
和Replace Char
(这些是CMS管理面板中的输入字段,因此我不确定幕后使用的实际代码功能不幸)。我的理解是对匹配Match Expression
的任何表达式进行搜索检查,并将Replace Expression
中指定的表达式替换为Replace Char
中指定的表达式。所以它是匹配条件下的一种查找和替换。
一些有效的例子:
示例1
匹配表达式: /[a-zA-Z0-9]*-[a-zA-Z0-9]*/
替换表达式: /-/
替换字符:为空
匹配的文字:SX500-123
,GLX-11A
,GLZX-VXV
,GLZ/123
,GLZV 123
,CNC-PWR1
结果文字:SX500123
,GLX11A
,GLZXVXV
,GLZ/123
,GLZV-123-123
,CNCPWR1
此处有更多示例: 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
我已尝试暂时将上面列出的示例中的-
替换为"
,但即使这样也无效。
任何帮助将不胜感激!谢谢
答案 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
作为这个答案的背景。我从您正在使用的工具中了解到,您的匹配表达式会收集一个结果集,您可以在其中应用另一个正则表达式(替换表达式),该表达式将替换与匹配的内容替换字符