我一直致力于应用程序,该应用程序的目标是搜索具有特定数字模式的电话号码。
搜索场景位于下方。
让我们说,如果搜索模式是:
*ABCABC
那么结果应该是
91203156156
91203487487
如果搜索模式是:
*AABB
然后结果应该是:
91203851122
91203727733
我的问题是
有没有办法使用Regex与MongoDB或 弹性搜索?
实现这一目标的最佳做法是什么? 感谢。
答案 0 :(得分:0)
如果我理解你,你可以通过分组实现这一目标。
例如,如果您想查找ABCABC
等模式,可以搜索(.)(.)(.)\1\2\3
,细分如下:
(.)(.)(.)\1\2\3
(.) Find any character and put it in the first group
(.) Find any character and put it in the second group
(.) Find any character and put it in the third group
\1 Match the first group, ie the first character
\2 Match the second group
\3 Match the third group
示例,在Python中:
>>> import re
>>> regex = re.compile(r".*(.)(.)(.)\1\2\3.*")
>>> regex.match("9120**3487487**")
<_sre.SRE_Match object; span=(0, 15), match='9120**3487487**'>