当前位置: 首页 > news >正文

Elasticsearch——》正则regexp

推荐链接:
    总结——》【Java】
    总结——》【Mysql】
    总结——》【Redis】
    总结——》【Kafka】
    总结——》【Spring】
    总结——》【SpringBoot】
    总结——》【MyBatis、MyBatis-Plus】
    总结——》【Linux】
    总结——》【MongoDB】
    总结——》【Elasticsearch】

Elasticsearch——》正则regexp

  • 一、概念
  • 二、语法
  • 三、标准操作符
    • 1、匹配任意字符
    • 2、匹配一个或多个字符
    • 3、匹配零个或多个字符
    • 4、匹配零个或一个字符
    • 5、最小最大匹配次数
    • 6、分组
    • 7、匹配左侧或右侧
    • 8、匹配字符的范围
  • 四、可选操作符
    • 1、否定
    • 2、匹配数值的范围
    • 3、匹配左侧和右侧

一、概念

参考链接:【官网】正则表达式语法

regexp (正则表达式)查询允许您使用正则表达式进行项查询。“项查询” 意味着 Elasticsearch 会将正则表达式应用于由该字段生成的项,而不是字段的原始文本。

二、语法

正则表达式查询由 regexpquery_string 查询支持。

GET <index>/_search
{"query": {"regexp": {"<field>": {"value": "<regex>","flags": "ALL",}}}
}

三、标准操作符

标准操作符作用示例
.匹配任意字符对于字符串 “abcde”,以下正则都匹配:
ab…
a.c.e
*匹配零个或多个字符对于字符串 “aaabbb”,以下正则都匹配:
ab
abc*
.bbb.
aaabbb
?匹配零个或一个字符对于字符串 “aaabbb”,以下正则都匹配:
aaa?bbb?
aaaa?bbbb?
…?.?
aa?bb?
+匹配一个或多个字符对于字符串 “aaabbb”,以下正则都匹配:
a+b+
aa+bb+
a+.+
aa+bbb+
{}最小最大匹配次数
{5}:重复匹配5次
{2,5}:重复匹配最小2次,最多5次
{2,}:# 重复匹配最小2次
对于字符串 “aaabbb”,以下正则都匹配:
- a{3}b{3}
a{2,4}b{2,4}
a{2,}b{2,}
.{3}.{3}

对于字符串 “aaabbb”,以下正则都不匹配:
a{4}b{4}
a{4,6}b{4,6}
a{4,}b{4,}
[]匹配字符的范围(匹配方括号中的一个字符)
[abc]:a或b或c
[a-c]:a或b或c
[-abc]:-或a或b或c
[abc\-]:-或a或b或c
[^abc]:不是(a或b或c)
[^a-c]:不是(a或b或c)
[^-abc]:不是(-或a或b或c)
[^abc\-]:不是(-或a或b或c)
对于字符串 “abcb”,以下正则都匹配:
ab[cd]+
[a-d]+

对于字符串 “abcb”,以下正则都不匹配:
[^a-d]+
()分组对于字符串 “ababab”,以下正则都匹配:
(ab)+
ab(ab)+
(…)+
(ab)*
abab(ab)?
(ab){3}

对于字符串 “ababab”,以下正则都不匹配:
(…)+
ab(ab)?
(ab){1,2}

1、匹配任意字符

对于字符串 “abcde”,以下正则都匹配:

  • ab…
  • a.c.e
POST /my_index/_bulk
{"index":{"_id":"1"}}
{"text":"abcde"}GET my_index/_search
{"query": {"regexp": {"text": "ab..."}}
}

2、匹配一个或多个字符

对于字符串 “aaabbb”,以下正则都匹配:

  • a+b+
  • aa+bb+
  • a+.+
  • aa+bbb+
POST /my_index/_bulk
{"index":{"_id":"1"}}
{"text":"aaabbb"}GET my_index/_search
{"query": {"regexp": {"text": "aa+bbb+"}}
}

3、匹配零个或多个字符

对于字符串 “aaabbb”,以下正则都匹配:

  • ab
  • abc*
  • .bbb.
  • aaabbb
POST /my_index/_bulk
{"index":{"_id":"1"}}
{"text":"aaabbb"}GET my_index/_search
{"query": {"regexp": {"text": "aaa*bbb*"}}
}

4、匹配零个或一个字符

对于字符串 “aaabbb”,以下正则都匹配:

  • aaa?bbb?
  • aaaa?bbbb?
  • …?.?
  • aa?bb?
POST /my_index/_bulk
{"index":{"_id":"1"}}
{"text":"aaabbb"}GET my_index/_search
{"query": {"regexp": {"text": "aaaa?bbbb?"}}
}

5、最小最大匹配次数

正则描述
{5}重复匹配5次
{2,5}重复匹配最小2次,最多5次
{2,}重复匹配最小2次

对于字符串 “aaabbb”,以下正则都匹配:

  • a{3}b{3}
  • a{2,4}b{2,4}
  • a{2,}b{2,}
  • .{3}.{3}

对于字符串 “aaabbb”,以下正则都不匹配:

  • a{4}b{4}
  • a{4,6}b{4,6}
  • a{4,}b{4,}
POST /my_index/_bulk
{"index":{"_id":"1"}}
{"text":"aaabbb"}GET my_index/_search
{"query": {"regexp": {"text": "a{2,}b{2,}"}}
}

6、分组

对于字符串 “ababab”,以下正则都匹配:

  • (ab)+
  • ab(ab)+
  • (…)+
  • (ab)*
  • abab(ab)?
  • (ab){3}

对于字符串 “ababab”,以下正则都不匹配:

  • (…)+
  • ab(ab)?
  • (ab){1,2}
POST /my_index/_bulk
{"index":{"_id":"1"}}
{"text":"ababab"}GET my_index/_search
{"query": {"regexp": {"text": "(ab){1,2}"}}
}

7、匹配左侧或右侧

对于字符串 “aabb”,以下正则都匹配:

  • aabb|bbaa
  • aa(cc|bb)
  • a+b+|b+a+
  • a+(b|c)+

对于字符串 “aabb”,以下正则都不匹配:

  • aacc|bb
  • a+|b+
POST /my_index/_bulk
{"index":{"_id":"1"}}
{"text":"aabb"}GET my_index/_search
{"query": {"regexp": {"text": "aa(cc|bb)"}}
}

8、匹配字符的范围

正则描述
[abc]a或b或c
[a-c]a或b或c
[-abc]-或a或b或c
[abc\-]-或a或b或c
[^abc]不是(a或b或c)
[^a-c]不是(a或b或c)
[^-abc]不是(-或a或b或c)
[^abc\-]不是(-或a或b或c)

对于字符串 “abcb”,以下正则都匹配:

  • ab[cd]+
  • [a-d]+

对于字符串 “abcb”,以下正则都不匹配:

  • [^a-d]+
POST /my_index/_bulk
{"index":{"_id":"1"}}
{"text":"abcd"}GET my_index/_search
{"query": {"regexp": {"text": "[a-d]+"}}
}

四、可选操作符

flags 参数默认为 ALL

flags开启可选操作符作用示例
ALL所有
COMPLEMENT~否定对于字符串 “abcdef”,以下正则都匹配:
ab~df
ab~cf
a~(cb)def

对于字符串 “abcdef”,以下正则都不匹配:
a(bc)def<br>abcdef
INTERVAL<>匹配数值的范围对于字符串 “x80”,以下正则都匹配:
x<1-100>
x<01-100>

对于字符串 “x80”,以下正则都不匹配:
x<001-100>
INTERSECTION&匹配左侧和右侧对于字符串 “aaabbb”,以下正则都匹配:
aaa.+&.+bbb

对于字符串 “aaabbb”,以下正则都不匹配:
aaa&bbb
ANYSTRING@匹配任何整个字符串

1、否定

ab〜cd,必须满足以下条件:

  • “a” 开头
  • 跟在 “b” 后面
  • 后面是任何长度的字符串,除了 “c”
  • “d” 结束

对于字符串 “abcdef”,以下正则都匹配:

  • ab~df
  • ab~cf
  • a~(cb)def

对于字符串 “abcdef”,以下正则都不匹配:

  • a~(bc)def
  • ab~cdef
POST /my_index/_bulk
{"index":{"_id":"1"}}
{"text":"abcdef"}GET my_index/_search
{"query": {"regexp": {"text": "ab~df"}}
}

2、匹配数值的范围

对于字符串 “x80”,以下正则都匹配:

  • x<1-100>
  • x<01-100>

对于字符串 “x80”,以下正则都不匹配:

  • x<001-100>
POST /my_index/_bulk
{"index":{"_id":"1"}}
{"text":"x80"}GET my_index/_search
{"query": {"regexp": {"text": "x<01-100>"}}
}

3、匹配左侧和右侧

对于字符串 “aaabbb”,以下正则都匹配:

  • aaa.+&.+bbb

对于字符串 “aaabbb”,以下正则都不匹配:

  • aaa&bbb
POST /my_index/_bulk
{"index":{"_id":"1"}}
{"text":"aaabbb"}GET my_index/_search
{"query": {"regexp": {"text": "aaa.+&.+bbb"}}
}

相关文章:

Elasticsearch——》正则regexp

推荐链接&#xff1a; 总结——》【Java】 总结——》【Mysql】 总结——》【Redis】 总结——》【Kafka】 总结——》【Spring】 总结——》【SpringBoot】 总结——》【MyBatis、MyBatis-Plus】 总结——》【Linux】 总结——》【MongoD…...

五面阿里Java岗,从小公司到阿里的面经总结

​​​​​​​ 面试 笔试常见的问题 面试常见的问题下面给的面试题基本都有。 1 手写代码&#xff1a;手写代码一般会考单例、排序、线程、消费者生产者 排序。 2 写SQL很常考察group by、内连接和外连接 2.面试1-5面总结 1&#xff09;让你自我介绍 2&#xff09;做两道算法…...

redis(7)

全局ID生成器: 全局ID生成器&#xff0c;是一种在分布式系统下用来生成全局唯一ID的工具&#xff0c;一般要满足以下特性 唯一性高可用(随时访问随时生成)递增性安全性(不能具有规律性)高性能(生成ID的速度快) 为了增加ID的安全性&#xff0c;我们不会使用redis自增的数值&am…...

互联网从业者高频单词 300个

测试 (Test) 软件 (Software) 用例 (Test Case) 缺陷 (Defect) 提交 (Submit) 回归测试 (Regression Testing) 验收测试 (Acceptance Testing) 单元测试 (Unit Testing) 集成测试 (Integration Testing) 性能测试 (Performance Testing) 负载测试 (load Testing) 压…...

初始化vue中data中的数据

当组件的根元素使用了v-if的时候, 并不会初始化data中的数据 如果想完全销毁该组件并且初始化数据,需要在使用该组件的本身添加v-if 或者是手动初始化该组件中的数据 初始化化数据的一些方法 Object.assign(this.$data, this.$options.data()) this.$data&#xff1a;当前的da…...

神经网络的建立-TensorFlow2.x

要学习深度强化学习&#xff0c;就要学会使用神经网络&#xff0c;建立神经网络可以使用TensorFlow和pytorch&#xff0c;今天先学习以TensorFlow建立网络。 直接上代码 import tensorflow as tf# 定义神经网络模型 model tf.keras.models.Sequential([tf.keras.layers.Dense…...

python基于卷积神经网络实现自定义数据集训练与测试

注意&#xff1a; 如何更改图像尺寸在这篇文章中&#xff0c;修改完之后你就可以把你自己的数据集应用到网络。如果你的训练集与测试集也分别为30和5&#xff0c;并且样本类别也为3类&#xff0c;那么你只需要更改图像标签文件地址以及标签内容&#xff08;如下面两图所示&…...

跟着LearnOpenGL学习3--四边形绘制

文章目录 一、前言二、元素缓冲对象三、完整代码四、绘制模式 一、前言 通过跟着LearnOpenGL学习2–三角形绘制一文&#xff0c;我们已经知道了怎么配置渲染管线&#xff0c;来绘制三角形&#xff1b; OpenGL主要处理三角形&#xff0c;当我们需要绘制别的图形时&#xff0c;…...

c#笔记-结构

装箱 结构是值类型。值类型不能继承其他类型&#xff0c;也不能被其他类型继承。 所以它的方法都是确定的&#xff0c;没有虚方法需要在运行时进行动态绑定。 值类型没有对象头&#xff0c;方法调用由编译器直接确定。 但是&#xff0c;如果使用引用类型变量&#xff08;如接…...

Es分布式搜索引擎

目录 一、什么是ES&#xff1f; 二、什么是elk&#xff1f; 三、什么是倒排索引&#xff1f; 四、正向索引和倒排索引的优缺点对比 五、mysql数据库和es的区别&#xff1f; 六、索引库&#xff08;es中的数据库表&#xff09;操作有哪些&#xff1f; 八、ES分片存储原理 …...

open3d 裁剪点云

目录 1. crop_point_cloud 2. crop 3. crop_mesh 1. crop_point_cloud 关键函数 chair vol.crop_point_cloud(pcd) # vol: SelectionPolygonVolume import open3d as o3dif __name__ "__main__":# 1. read pcdprint("Load a ply point cloud, crop it…...

如何对第三方相同请求进行筛选过滤

文章目录 问题背景处理思路注意事项代码实现 问题背景 公司内部多个系统共用一套用户体系库&#xff0c;对外(钉钉)我们是两个客户身份(这里是根据系统来的)&#xff0c;例如当第三方服务向我们发起用户同步请求&#xff1a;是一个更新用户操作&#xff0c;它会同时发送一个 d…...

Go RPC

目录 文章目录 Go RPCHTTP RPCTCP RPCJSON RPC Go RPC Go 标准包中已经提供了对 RPC 的支持&#xff0c;而且支持三个级别的 RPC&#xff1a;TCP、HTTP、JSONRPC。但 Go 的 RPC 包是独一无二的 RPC&#xff0c;它和传统的 RPC 系统不同&#xff0c;它只支持 Go 开发的服务器与…...

真正的智能不仅仅是一个技术问题

智能并不是单一的技术问题&#xff0c;而是一个包括技术、人类智慧、社会制度和文化等多个方面的综合体&#xff0c;常常涉及技术变革、系统演变、运行方式创新、组织适应。智能是指人类的思考、判断、决策和创造等高级认知能力&#xff0c;可以通过技术手段来实现增强和扩展。…...

【数据结构】复杂度包装泛型

目录 1.时间和空间复杂度 1.1时间复杂度 1.2空间复杂度 2.包装类 2.1基本数据类型和对应的包装类 2.2装箱和拆箱 //阿里巴巴面试题 3.泛型 3.1擦除机制 3.2泛型的上界 1.时间和空间复杂度 1.1时间复杂度 定义&#xff1a;一个算法所花费的时间与其语句的执行次数成…...

Ae:绘画面板

Ae菜单&#xff1a;窗口/绘画 Paint 快捷键&#xff1a;Ctrl 8 绘画工具&#xff08;画笔工具、仿制图章工具及橡皮擦工具&#xff09;仅能工作在图层面板上。在使用绘画工具之前&#xff0c;建议先在绘画 Paint面板中查看或进行相关设置。 说明&#xff1a; 如果要在绘画描边…...

常见的锁和zookeeper

zookeeper 本文由 简悦 SimpRead 转码&#xff0c; 原文地址 zhuanlan.zhihu.com 前言 只有光头才能变强。 文本已收录至我的 GitHub 仓库&#xff0c;欢迎 Star&#xff1a;https://github.com/ZhongFuCheng3y/3y 上次写了一篇 什么是消息队列&#xff1f;以后&#xff0c;本来…...

经验总结:(Redis NoSQL数据库快速入门)

一、Nosql概述 为什么使用Nosql 1、单机Mysql时代 90年代,一个网站的访问量一般不会太大&#xff0c;单个数据库完全够用。随着用户增多&#xff0c;网站出现以下问题 数据量增加到一定程度&#xff0c;单机数据库就放不下了数据的索引&#xff08;B Tree&#xff09;,一个机…...

form表单与模板引擎

文章目录 一、form表单的基本使用1、什么是表单2、表单的组成部分3、 <form>标签的属性4、表单的同步提交及缺点&#xff08;1&#xff09; 什么是表单的同步提交&#xff08;2&#xff09; 表单同步提交的缺点&#xff08;3&#xff09; 如何解决表单同步提交的缺点 二、…...

医院检验信息管理系统源码(云LIS系统源码)JQuery、EasyUI

云LIS系统是一种医疗实验室信息管理系统&#xff0c;提供全面的实验室信息管理解决方案。它的主要功能包括样本管理、检测流程管理、报告管理、质量控制、数据分析和仪器管理等。 云LIS源码技术说明&#xff1a; 技术架构&#xff1a;Asp.NET CORE 3.1 MVC SQLserver Redis等…...

从USB转TTL接线到手机热点配网:ESP8266无线通信保姆级避坑指南(附软件包)

从USB转TTL接线到手机热点配网&#xff1a;ESP8266无线通信保姆级避坑指南 当你第一次拿起ESP8266模块时&#xff0c;可能会被这个小巧的Wi-Fi模块惊艳到——它只有指甲盖大小&#xff0c;却蕴含着强大的无线通信能力。但很快&#xff0c;这种惊艳就会变成困惑&#xff1a;为什…...

Goframe项目实战:从数据库表到API接口的全链路开发指南(含避坑点)

Goframe项目实战&#xff1a;从数据库表到API接口的全链路开发指南&#xff08;含避坑点&#xff09;在当今微服务架构盛行的时代&#xff0c;Go语言因其高性能和并发优势成为后端开发的热门选择。而Goframe作为一款企业级的Go应用开发框架&#xff0c;提供了从数据库操作到API…...

CANN-昇腾NPU-RAG推理-检索增强生成怎么部署

RAG&#xff08;Retrieval-Augmented Generation&#xff09;是 LLM 知识库的组合&#xff1a;先检索相关文档&#xff0c;再让 LLM 基于文档回答。昇腾NPU 上部署 RAG 需要两个组件&#xff1a;Embedding 模型&#xff08;做向量检索&#xff09;和 LLM&#xff08;做生成&am…...

自制BLE112串口编程器:基于Bootloader的免调试器烧录方案

1. 项目概述&#xff1a;为BLE112模块打造一款免调试器的RS232编程器在嵌入式开发&#xff0c;特别是早期的蓝牙低功耗&#xff08;BLE&#xff09;模块应用中&#xff0c;我们常常会遇到一个棘手的问题&#xff1a;官方开发工具链的依赖和限制。以Silicon Labs&#xff08;当时…...

销售怎么通过各种方法获取电话号码

第一种就是那个用爬虫电话号码&#xff0c;然后再打电话给客户。第二种是在别人的挪车电话看车挪车电话&#xff0c;然后再打电话找客户。第三就是。扫楼一顿顿的扫&#xff0c;第四就是这个那种商店&#xff0c;一个个的去问陌拜地推一个个的问店子要不要贷款&#xff0c;去问…...

贵阳婚礼西服定制攻略:面料、工艺、版型避坑指南

婚礼西装是男士婚礼造型的核心&#xff0c;区别于日常商务正装&#xff0c;婚礼西服更看重版型精致度、面料质感、上身挺拔感以及镜头适配度。在贵阳备婚的新人&#xff0c;大多会放弃成品西装&#xff0c;选择专属定制服务。但本地婚礼西服定制市场参差不齐&#xff0c;很多新…...

Office RibbonX Editor:简单三步打造你的专属Office界面

Office RibbonX Editor&#xff1a;简单三步打造你的专属Office界面 【免费下载链接】office-ribbonx-editor An overhauled fork of the original Custom UI Editor for Microsoft Office, built with WPF 项目地址: https://gitcode.com/gh_mirrors/of/office-ribbonx-edit…...

CentOS 8.5最小化安装后,这5个必做的安全与效率优化设置(附一键脚本)

CentOS 8.5最小化安装后的5个必做安全与效率优化刚完成CentOS 8.5最小化安装的系统就像一张白纸——干净但缺乏生产力。作为运维老手&#xff0c;我见过太多人跳过基础优化直接部署应用&#xff0c;结果在后续使用中频繁遇到权限混乱、软件安装慢、SSH爆破等问题。本文将分享我…...

观察Token消耗明细,Taotoken用量看板如何帮助控制预算

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 观察Token消耗明细&#xff0c;Taotoken用量看板如何帮助控制预算 对于个人开发者或项目管理者而言&#xff0c;在使用大模型API时…...

ZYNQ中断避坑指南:PL端信号线如何正确‘连线’到PS端处理函数?

ZYNQ中断系统深度解析&#xff1a;从硬件信号到软件响应的全链路实践 在嵌入式系统开发中&#xff0c;中断处理是实时响应的核心机制。对于ZYNQ这种集成了ARM处理器(PS)和可编程逻辑(PL)的异构计算平台&#xff0c;其中断系统既有传统处理器的特性&#xff0c;又具备FPGA灵活定…...