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

深入了解 Oracle 正则表达式

目录

  • 深入了解 Oracle 正则表达式
    • 一、正则表达式基础概念
    • 二、Oracle 正则表达式语法
      • (一)字符类
      • (二)重复限定符
      • (三)边界匹配符
      • (四)分组和捕获
    • 三、Oracle 正则表达式函数
      • (一)REGEXP\_LIKE 函数
      • (二)REGEXP\_REPLACE 函数
      • (三)REGEXP\_SUBSTR 函数
    • 四、实际应用场景
      • (一)数据清洗
      • (二)数据验证
      • (三)文本分析
    • 五、注意事项
    • 六、总结

深入了解 Oracle 正则表达式

一、正则表达式基础概念

正则表达式是一种用于描述、匹配和处理文本模式的强大工具,它通过特定的字符和符号组合来定义模式,进而在文本中实现查找、替换或提取符合条件的内容。在 Oracle 数据库环境中,正则表达式广泛应用于数据验证、数据清洗以及文本分析等关键场景。

例如,从大量的用户信息中提取邮箱地址,或者验证用户输入的电话号码是否符合规范,正则表达式都能轻松应对,为数据处理工作提供了极大的便利。

二、Oracle 正则表达式语法

(一)字符类

基本字符类

.(点):匹配除换行符外的任意单个字符。例如,‘a.c’ 能够匹配 ‘abc’、‘a1c’ 等字符串,只要中间字符为任意单个字符(换行符除外)即可。

[字符集合]:匹配字符集合中的任意一个字符。比如,‘[aeiou]’ 专门用于匹配元音字母,当处理文本中需要筛选出元音字母相关内容时,这个字符类就非常有用。

[^ 字符集合]:匹配不在指定字符集合中的任意一个字符。例如,‘[^0-9]’ 可以精准匹配任何非数字字符,在处理需要排除数字的数据场景中发挥作用。

预定义字符类

\d:匹配任意一个数字字符,其功能等同于 [0-9]。像 ‘\d {3}’ 就能匹配三位连续的数字,如 ‘123’、‘456’ 等,常用于处理与数字位数相关的匹配需求。

\w:匹配任意一个字母、数字或下划线字符,等价于 [a-zA-Z0-9_]。当我们需要处理包含字母、数字和下划线组成的用户名、文件名等数据时,‘\w+’ 可以匹配由这些字符组成的一个或多个字符的字符串。

\s:匹配任意一个空白字符,包括空格、制表符、换行符等,等价于 [\t\n\r\f]。在处理文本排版、格式整理等任务时,识别和处理空白字符是很常见的操作,‘\s’ 就派上了用场。

(二)重复限定符

{n}:表示前面的字符或表达式恰好出现 n 次。例如,‘a {3}’ 仅能匹配 ‘aaa’,不会匹配 ‘aa’ 或 ‘aaaa’,在需要精确匹配固定次数字符的场景中很实用。

{n,}:意味着前面的字符或表达式至少出现 n 次。例如,‘a {3,}’ 可以匹配 ‘aaa’、‘aaaa’、‘aaaaa’ 等,只要出现次数大于等于 3 次即可,适用于对出现次数有下限要求的匹配。

{n,m}:表示前面的字符或表达式出现次数在 n 到 m 之间(包括 n 和 m)。比如,‘a {3,5}’ 可以匹配 ‘aaa’、‘aaaa’、‘aaaaa’,满足出现次数在 3 到 5 次之间的各种情况。

?:前面的字符或表达式出现 0 次或 1 次,等价于 {0,1}。例如,‘a?’ 可以匹配空字符串,也可以匹配 ‘a’,在处理某些可有可无字符的匹配时非常方便。

+:前面的字符或表达式出现 1 次或多次,等价于 {1,}。例如,‘a+’ 可以匹配 ‘a’、‘aa’、‘aaa’ 等,只要至少出现一次 ‘a’ 即可,常用于匹配至少出现一次的字符或表达式。

*:前面的字符或表达式出现 0 次或多次,等价于 {0,}。例如,‘a*’ 可以匹配空字符串,也可以匹配 ‘a’、‘aa’ 等任意次数出现 ‘a’ 的情况,灵活性较高。

(三)边界匹配符

****:匹配字符串的开头。例如,'abc’ 只会匹配以 ‘abc’ 开头的字符串,在需要筛选特定开头数据时很有效。

** ∗ ∗ :匹配字符串的结尾。例如 , ′ a b c **:匹配字符串的结尾。例如,'abc :匹配字符串的结尾。例如abc’ 仅能匹配以 ‘abc’ 结尾的字符串,对于处理特定结尾的数据场景很有用。

\b:匹配单词边界。例如,‘\bcat\b’ 可以匹配 ‘the cat is here’ 中的 ‘cat’,因为它处于单词边界位置;但不会匹配 ‘category’ 中的 ‘cat’,因为 ‘cat’ 在 ‘category’ 中不是独立的单词。

(四)分组和捕获

( ):用于分组和捕获。将正则表达式的一部分括起来,就可以把这部分当作一个整体进行操作,同时还能捕获匹配到的内容。例如,‘(ab)+’ 可以匹配 ‘ab’、‘abab’、‘ababab’ 等,并且每次匹配到的 ‘ab’ 都会被捕获,方便后续对分组内容进行处理。

\n:用于引用之前捕获的分组。其中 n 是分组的编号,从 1 开始。例如,‘(a (b))\1’ 可以匹配 ‘abab’,这里的 \1 引用了第一个分组 (a (b)) 匹配到的内容,在需要重复使用之前捕获内容进行匹配时非常实用。

三、Oracle 正则表达式函数

(一)REGEXP_LIKE 函数

功能:主要用于判断一个字符串是否匹配指定的正则表达式模式,返回布尔值,方便在数据筛选时进行条件判断。

语法:REGEXP_LIKE(source_string, pattern [, match_parameter])

source_string:待匹配的源字符串,是我们要处理的数据对象。

pattern:定义的正则表达式模式,用于描述匹配规则。

match_parameter:可选参数,用于指定匹配模式,例如 ‘i’ 表示不区分大小写匹配,在处理不关心大小写的数据匹配时使用。

示例

判断一个字符串是否为有效的邮箱地址。

SELECT *
FROM your_table
WHERE REGEXP_LIKE(email, '^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$');

在这个示例中,正则表达式 ‘^[A-Za-z0-9._%±]+@[A-Za-z0-9.-]+.[A-Za-z]{2,}$’ 详细定义了邮箱地址的格式。它要求邮箱地址以字母、数字、下划线、百分号、加号、减号、点号中的一个或多个字符开头,接着是 ‘@’ 符号,然后是由字母、数字、点号、减号组成的一个或多个字符,最后是一个点号和至少两个字母组成的顶级域名。通过这个函数和正则表达式,能够快速筛选出符合邮箱格式的数据。

(二)REGEXP_REPLACE 函数

功能:在一个字符串中查找匹配正则表达式模式的部分,并将其替换为指定的字符串,常用于数据清洗和格式统一。

语法:REGEXP_REPLACE(source_string, pattern [, replace_string [, position [, occurrence [, match_parameter]]]])

source_string:进行替换操作的源字符串,是要被修改的数据。

pattern:用于查找匹配内容的正则表达式模式。

replace_string:用于替换匹配部分的目标字符串。

position:可选参数,指定从源字符串的第几个字符开始进行匹配,默认值为 1。

occurrence:可选参数,指定要替换的第几次出现的匹配部分,默认值为 0,表示替换所有匹配部分。

match_parameter:可选参数,用于指定匹配模式,如 ‘i’ 表示不区分大小写匹配。

示例

将字符串中的所有数字替换为 ‘#’。

SELECT REGEXP_REPLACE('abc123def456', '\d', '#')
FROM dual;

执行结果为 ‘abc###def###’,正则表达式 ‘\d’ 精准匹配所有数字字符,然后将其替换为 ‘#’,实现了数据的格式转换。

(三)REGEXP_SUBSTR 函数

功能:从一个字符串中提取匹配正则表达式模式的子字符串,在数据提取和分析中经常使用。

语法:REGEXP_SUBSTR(source_string, pattern [, position [, occurrence [, match_parameter]]])

source_string:进行提取操作的源字符串,是数据来源。

pattern:定义提取规则的正则表达式模式。

position:可选参数,指定从源字符串的第几个字符开始进行匹配,默认值为 1。

occurrence:可选参数,指定要提取的第几次出现的匹配部分,默认值为 1。

match_parameter:可选参数,用于指定匹配模式,如 ‘i’ 表示不区分大小写匹配。

示例

从一个包含多个邮箱地址的字符串中提取第一个邮箱地址。

SELECT REGEXP_SUBSTR('user1@example.com;user2@example.net', '[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}')
FROM dual;

执行结果为 ‘user1@example.com’,正则表达式 ‘[A-Za-z0-9._%±]+@[A-Za-z0-9.-]+.[A-Za-z]{2,}’ 匹配邮箱地址格式,然后成功提取出第一个匹配到的邮箱地址。

四、实际应用场景

(一)数据清洗

在数据入库之前,确保数据的准确性和一致性至关重要。例如,统一电话号码格式。

-- 将电话号码格式统一为 (xxx) xxx-xxxx
UPDATE your_table
SET phone_number = REGEXP_REPLACE(phone_number, '(\d{3})(\d{3})(\d{4})', '(\1) \2-\3');

通过这个操作,能将各种不同格式的电话号码统一成规范的格式,方便后续的数据存储和使用。

(二)数据验证

当用户输入数据时,需要验证数据是否符合指定格式。例如,验证身份证号码。

SELECT *
FROM user_info
WHERE REGEXP_LIKE(id_card_number, '^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dXx]$');

利用这个正则表达式,可以快速筛选出符合身份证号码格式的数据,避免错误数据进入系统。

(三)文本分析

在进行文本分析时,提取特定信息是常见需求。例如,从一篇文章中提取所有的 URL 链接。

SELECT REGEXP_SUBSTR(article_content, 'https?://[^\s]+', 1, level) AS url
FROM your_table
CONNECT BY LEVEL <= REGEXP_COUNT(article_content, 'https?://[^\s]+');

通过这个查询,可以将文章中所有的 URL 链接提取出来,为后续的文本分析和数据挖掘提供支持。

五、注意事项

性能问题:正则表达式在处理大量数据时,可能会因为复杂的匹配规则而导致性能下降。因此,在使用时务必谨慎评估,建议先对数据进行适当过滤,减少需要处理的数据量,以提高处理效率。

字符集问题:不同的字符集可能会对正则表达式的匹配结果产生影响。在实际应用中,要确保数据库字符集与处理数据的字符集一致,避免因字符集差异导致匹配错误。

正则表达式的复杂性:复杂的正则表达式虽然功能强大,但往往难以理解和维护。在编写正则表达式时,应尽量保持简洁明了,确保代码的可读性和可维护性。

六、总结

Oracle 正则表达式是数据库开发和管理中不可或缺的强大工具,它为我们在处理和分析文本数据时提供了极大的便利。通过深入掌握正则表达式的基本语法和常用函数,我们能够高效地实现数据清洗、验证、分析等关键任务。在实际应用中,要根据具体需求合理运用正则表达式,并充分考虑性能、字符集等相关问题。希望本文能帮助读者全面理解和熟练运用 Oracle 正则表达式,提升在数据库领域的技术能力和工作效率。

相关文章:

深入了解 Oracle 正则表达式

目录 深入了解 Oracle 正则表达式一、正则表达式基础概念二、Oracle 正则表达式语法&#xff08;一&#xff09;字符类&#xff08;二&#xff09;重复限定符&#xff08;三&#xff09;边界匹配符&#xff08;四&#xff09;分组和捕获 三、Oracle 正则表达式函数&#xff08;…...

机器学习-监督学习

1. 定义与原理 监督学习依赖于标记数据&#xff08;即每个输入样本都对应已知的输出标签&#xff09;&#xff0c;模型通过分析这些数据中的规律&#xff0c;建立从输入特征到目标标签的映射函数。例如&#xff0c;在垃圾邮件检测中&#xff0c;输入是邮件内容&#xff0c;输出…...

Leetcode:学习记录

一、滑动窗口 1. 找出数组中元素和大于给定值的子数组的最小长度 右指针从左到右遍历&#xff0c;在每个右指针下&#xff0c;如果去掉左边元素的元素和大于等于给定值则左指针右移一次&#xff0c;直到小于给定值&#xff0c;右指针右移一个。 2.找到乘积小于给定值的子数组…...

探索顶级汽车软件解决方案:驱动行业变革的关键力量

在本文中&#xff0c;将一同探索当今塑造汽车行业的最具影响力的软件解决方案。从设计到制造&#xff0c;软件正彻底改变车辆的制造与维护方式。让我们深入了解这个充满活力领域中的关键技术。 设计软件&#xff1a;创新车型的孕育摇篮 车辆设计软件对于创造创新型汽车模型至…...

AI前端开发:解放创造力,而非取代它

近年来&#xff0c;人工智能技术飞速发展&#xff0c;深刻地改变着各行各业&#xff0c;前端开发领域也不例外。越来越多的AI写代码工具涌现&#xff0c;为开发者带来了前所未有的效率提升。很多人担心AI会取代程序员的创造力&#xff0c;但事实并非如此。本文将探讨AI辅助前端…...

探讨使用ISVA代替“Open Liberty使用指南及微服务开发示例”中日志审计功能

在Open Liberty使用指南及开发示例&#xff08;四&#xff09;一文开始日志审计功能占有了一定的开发工作量&#xff0c;那么是否可以使用IBM Security Verify Access&#xff08;ISVA&#xff09;代替以节省开发工作&#xff1f;如果可行&#xff0c;那么以后各类应用的日志审…...

log4j2日志配置文件

log4j2配置文件每个项目都会用到,记录一个比较好用的配置文件,方便以后使用时调取,日志输出级别为debug,也可以修改 <?xml version"1.0" encoding"UTF-8"?> <Configuration monitorInterval"180" packages""><prope…...

python专栏导读

由于本人非python工程师&#xff0c;是在自学python&#xff0c;所以本专栏的内容会显得很基础&#xff0c;甚至有些内容在python工程师看来实在太过于简单&#xff0c;在此清楚嘲笑&#xff0c;因为毕竟每个人都是从不懂、从基础开始的。 本篇作为导读和目录形式存在&#xf…...

Ollama与Vllm使用对比与优劣

Ollama和vLLM是两个用于优化大型语言模型&#xff08;LLM&#xff09;推理的框架&#xff0c;它们在性能、资源利用率、部署复杂性等方面各有优劣。以下是对这两个框架的详细介绍&#xff1a; 1. Ollama Ollama是一个轻量级且易于使用的框架&#xff0c;旨在简化大型语言模型…...

K8s之存储卷

一、容忍、crodon和drain 1.容忍 即使节点上有污点&#xff0c;依然可以部署pod。 字段&#xff1a;tolerations 实例 当node01上有标签test11&#xff0c;污点类型为NoSchedule&#xff0c;而node02没有标签和污点&#xff0c;此时pod可以在node01 node02上都部署&#xff0c…...

luoguP8764 [蓝桥杯 2021 国 BC] 二进制问题

luogu题目传送门 题目描述 小蓝最近在学习二进制。他想知道 1 到 N 中有多少个数满足其二进制表示中恰好有 K 个 1。你能帮助他吗? 输入格式 输入一行包含两个整数 N 和 K。 输出格式 输出一个整数表示答案。 输入输出样例 输入 #1 7 2 输出 #1 3 说明/提示 对于…...

本地部署DeepSeek后的调用与删除全攻略

在本地成功部署DeepSeek模型后&#xff0c;如何高效调用它发挥其强大功能&#xff0c;以及在不需要时妥善删除&#xff0c;是很多用户关注的重点。我也在后台接到了很多粉丝的留言&#xff0c;询问 DeepSeek 本地部署之后的一些调用和删除的问题&#xff0c;于是我在网上找了现…...

Qt Designer菜鸟使用教程(实现一个本地英文翻译软件)

1 安装Qt Designer 安装这个包的时候会自带安装 Qt Designer, 安装目录为python的安装根目录的 Lib/site-packages/qt5_applications/Qt/bin 目录下。 pip install pyqt5-tools2 新建窗体 2.1 新建主窗体 创建之后如下图&#xff1a; 设置主窗口大小&#xff1a; 设置窗…...

C++ 洗牌函数std::shuffle的用法

目录 1.简介 2.工作原理 3.std::shuffle 与 std::random_shuffle 的区别 4.rand 和 srand 5.std::shuffle 的使用方法 6.随机数生成器和分布器 7.注意事项 1.简介 std::shuffle 是 C 标准库中用于对序列进行随机重排&#xff08;洗牌&#xff09;的一种算法。它可以将容…...

MySQL InnoDB引擎 MVCC

MVCC&#xff08;Multi-Version Concurrency Control&#xff09;即多版本并发控制&#xff0c;是 MySQL 的 InnoDB 存储引擎实现并发控制的一种重要技术。它在很多情况下避免了加锁操作&#xff0c;从而提高了数据库的并发性能。 一、原理 MVCC 的核心思想是通过保存数据在某…...

【Elasticsearch】simple_query_string

Elasticsearch 的simple_query_string查询是一种灵活且容错性较强的查询方式&#xff0c;它允许用户通过简单的语法构造查询字符串&#xff0c;以实现对文档的搜索。以下是关于simple_query_string查询的详细说明&#xff1a; 1.基本概念 simple_query_string查询是一种基于字…...

数据结构 04

4. 栈 4.2. 链式栈 4.2.1. 特性 逻辑结构&#xff1a;线性结构 存储结构&#xff1a;链式存储结构 操作&#xff1a;创建&#xff0c;入栈&#xff0c;出栈&#xff0c;清空&#xff0c;获取 4.2.2. 代码实现 头文件 LinkStack.h #ifndef __LINKSTACK_H__ #define __LINKST…...

Java并发中的上下文切换、死锁、资源限制

在Java并发编程中&#xff0c;上下文切换、死锁和资源限制是开发者经常需要面对的问题。这些问题不仅会影响程序的性能&#xff0c;还可能导致程序无法正常运行。本文将深入探讨这些问题的原理、影响以及如何在实际开发中避免或解决它们。 目录 1. 上下文切换&#xff08;Con…...

DeepSeek教unity------MessagePack-01

MessagePack是C# 的极速 MessagePack 序列化器。它比 MsgPack-Cli 快 10 倍&#xff0c;并且性能超过其他 C# 序列化器。MessagePack for C# 还内置支持 LZ4 压缩——一种极其快速的压缩算法。性能在诸如游戏、分布式计算、微服务或数据缓存等应用中尤为重要。 这个库通过 NuGe…...

【大语言模型】最新ChatGPT、DeepSeek等大语言模型助力高效办公、论文与项目撰写、数据分析、机器学习与深度学习建模等科研应用

ChatGPT、DeepSeek等大语言模型助力科研应用 随着人工智能技术的快速发展&#xff0c;大语言模型如ChatGPT和DeepSeek在科研领域的应用正在为科研人员提供强大的支持。这些模型通过深度学习和大规模语料库训练&#xff0c;能够帮助科研人员高效地筛选文献、生成论文内容、进行数…...

泰勒公式推导以及常用展开式与近似计算

泰勒公式的基本思想是通过函数在某点的导数来逐渐构建一个多项式&#xff0c;该多项式能够近似函数在该点附近的值。我们通过一次次引入导数来改进近似&#xff0c;从而得到一个无限级数的展开。 准备工作&#xff1a;函数的定义和导数 假设我们有一个函数 f ( x ) f(x) f(x)…...

深入解析A2DP v1.4协议:蓝牙高质量音频传输的技术与实现

1. A2DP概述 A2DP&#xff08;Advanced Audio Distribution Profile&#xff09;是一种高质量音频流媒体协议&#xff0c;旨在实现高质量音频内容的分发&#xff0c;通常用于通过蓝牙设备传输音频数据&#xff0c;例如将音乐从便携式播放器传输到耳机或扬声器。与传统的蓝牙语…...

STM32引脚VBAT和RTC的关系

一、RTC简介 1、RTC (Real Time Clock)&#xff1a;实时时钟。RTC是个独立的定时器。RTC模块拥有一个连续计数的计数器&#xff0c;在相应的软件配置下&#xff0c;可以提供时钟日历的功能。修改计数器的值可以重新设置当前时间和日期。RTC还包含用于管理低功耗模式的自动唤醒单…...

untiy 3d 混合动画

1.创建动画控制器 挂在到人物模型上 效果 20250213_170924...

django配置跨域

1、第一种 from django.views.decorators.csrf import csrf_exemptcsrf_exempt第二种 安装 pip install django-cors-headers在配置文件settings.py进入 INSTALLED_APPS [..."corsheaders", # 添加 ]MIDDLEWARE [corsheaders.middleware.CorsMiddleware, # 添加…...

【设计模式】【行为型模式】迭代器模式(Iterator)

&#x1f44b;hi&#xff0c;我不是一名外包公司的员工&#xff0c;也不会偷吃茶水间的零食&#xff0c;我的梦想是能写高端CRUD &#x1f525; 2025本人正在沉淀中… 博客更新速度 &#x1f44d; 欢迎点赞、收藏、关注&#xff0c;跟上我的更新节奏 &#x1f3b5; 当你的天空突…...

前端面试题目---页面抖动的原因、如何避免、如何解决

前端页面抖动是一个常见且影响用户体验的问题&#xff0c;下面将从抖动发生的场景、解决办法以及预防措施三个方面进行详细阐述。 页面抖动发生的场景 1. 元素尺寸动态变化 图片加载&#xff1a;当页面中图片的宽高没有预先设定&#xff0c;在图片加载完成后&#xff0c;其实…...

DeepSeek 突然来袭,AI 大模型变革的危机与转机藏在哪?

随着人工智能技术的飞速发展&#xff0c;大模型领域不断涌现出具有创新性的成果。DeepSeek 的横空出世&#xff0c;为 AI 大模型领域带来了新的变革浪潮。本文将深入探讨 DeepSeek 出现后 AI 大模型面临的危机与转机。 冲冲冲&#xff01;&#xff01;&#xff01; 目录 一、…...

将Sqlite3数据库挂在内存上处理

创作灵感&#xff1a;最近把小学生的口算题从2位数改到3位数&#xff0c;100以内四则运算练习&#xff08;千纬数学&#xff09;再次更新&#xff0c;选取难题-CSDN博客要不断刷题目&#xff0c;以前100以内的加减乘除也是这样刷出来的&#xff0c;代码如下&#xff1a; impor…...

#用于跟踪和反映数据源对象的变化--useMagical

import { cloneDeep } from lodash-es import { reactive, ref, watchEffect } from vue /*** 神奇函数* param source 数据源,* param initKey 固定需要返回的属性* description 收集数据源中修改的属性,并返回* version 1.0 仅支持对象* author sufei* return { source, resu…...

基于微信小程序的场地预约设计与实现

第3章 系统设计 3.1系统设计目标 本系统的实现可以帮助体育馆场地信息的管理。帮助管理员对注册用户管理以及用户预约管理。同时可以帮助用户进行场地预约。本系统可以实现用户足不出户预约到需要的场地&#xff0c;为用户提供场地信息了解的平台。 3.2系统功能结构图 本系统的…...

1446. 连续字符 简单

1446. 连续字符https://leetcode.cn/problems/consecutive-characters/ 给你一个字符串 s &#xff0c;字符串的「能量」定义为&#xff1a;只包含一种字符的最长非空子字符串的长度。 请你返回字符串 s 的 能量。 示例 1&#xff1a; 输入&#xff1a;s "leetcode"…...

多张图片合成PDF

昨天接了一个家教&#xff0c;在网上搜集了一些图片格式的素材&#xff0c;但想要发给学生家长打印&#xff0c;都是图片格式可能不太方便&#xff0c;就想着合成pdf文件之后再发给家长。 试用了“samll*”一次&#xff0c;就需要充值vip了&#xff0c;所以就用python自己写了…...

【办公】钉钉修改默认存储位置,释放C盘空间

Step1: 右击钉钉图标选择设置 Step2: 通用里面找到文件保存位置&#xff0c;修改文件目录: 最新版本钉钉界面&#xff1a; 设置完成后按提示重启即可&#xff01;...

VLLM历次会议(2024.7)

支持LLama3.1&#xff1a; 量化&#xff1a; vllm git下的子项目&#xff1a;llm-compressor CPU offloading 允许跑更大的模型&#xff1b;会变慢些&#xff1b;在CPU-GPU之间有NVLink的机器上&#xff0c;变慢的幅度小。 新增对Medusa&#xff08;用1个Head并行推出好几个…...

进程等待与进程替换

目录 一、进程等待 1.1 为什么要等待子进程&#xff1f; 1.2 等待的两种方式 1.2.1 wait函数 1.2.2 waitpid函数 1.3 获取子进程的退出状态 1.4 示例代码 阻塞式等待&#xff08;同步&#xff09; 非阻塞等待&#xff08;异步&#xff09; 二、进程替换 2.1 什么是进…...

C# CultureInfo 地区影响字符串

问题 线上遇到有玩家资源加载异常&#xff0c;发现资源路径出现异常字符&#xff1a; 发现是土耳其语下字符串转小写不符合预期&#xff1a; "I".ToLower() -> ı 解决方案 String.ToLower 改成 String.ToLowerInvariant 全局修改禁用文化差异&#xff1a;ht…...

走进 Tcl 语言:历史、特性与应用

亲爱的小伙伴们&#x1f618;&#xff0c;在求知的漫漫旅途中&#xff0c;若你对深度学习的奥秘、Java 与 Python 的奇妙世界&#xff0c;亦或是读研论文的撰写攻略有所探寻&#x1f9d0;&#xff0c;那不妨给我一个小小的关注吧&#x1f970;。我会精心筹备&#xff0c;在未来…...

CNN-LSSVM卷积神经网络最小二乘支持向量机多变量多步预测,光伏功率预测

代码地址&#xff1a;CNN-LSSVM卷积神经网络最小二乘支持向量机多变量多步预测&#xff0c;光伏功率预测 CNN-LSSVM卷积神经网络最小二乘支持向量机多变量多步预测&#xff0c;光伏功率预测 一、引言 1、研究背景和意义 光伏发电作为可再生能源的重要组成部分&#xff0c;近…...

使用MaxKB及deepseek搭建本地AI知识库

序 本文主要研究一下如何MaxKB及deepseek搭建本地AI知识库 步骤 拉取MaxKB镜像 docker pull cr2.fit2cloud.com/1panel/maxkb如果拉取不下来就用docker.1ms.run/1panel/maxkb 启动MaxKB docker run -d --namemaxkb --restartalways -p 8080:8080 \ -v ~/.maxkb:/var/lib/p…...

一文通俗理解为什么需要泛型以及泛型的使用

为什么需要泛型&#xff1f; public static void main(String[] args) {ArrayList list new ArrayList();// 由于集合没有做任何限定&#xff0c;任何类型都可以给其中存放list.add("abc");list.add("def");list.add(5);Iterator it list.iterator();wh…...

凸包算法—— cad c#二次开发

效果如下&#xff1a; 代码如下&#xff1a; using IfoxDemo; //[assembly: CommandClass(typeof(IFoxDemo.凸包class))]//只允许此类快捷键命令 namespace IFoxDemo {public class 凸包class{public static class 凸包助手{/// <summary>/// 计算点集的凸包并返回多段线…...

Eclipse JSP/Servlet 深入解析

Eclipse JSP/Servlet 深入解析 引言 随着互联网的快速发展,Java Web开发技术逐渐成为企业级应用开发的主流。在Java Web开发中,JSP(JavaServer Pages)和Servlet是两个核心组件,它们共同构成了Java Web应用程序的基础。本文将深入解析Eclipse平台下的JSP/Servlet技术,帮…...

grep如何排除多个目录?

在使用 grep 进行文本搜索时&#xff0c;有时候需要排除多个目录&#xff0c;避免在这些目录下进行搜索。下面介绍几种不同的实现方式。 目录 1.使用 -r 和 --exclude-dir 选项&#xff08;GNU grep&#xff09; 2.使用扩展正则表达式和 -P 选项&#xff08;GNU grep&#x…...

linux ollama deepseek等大语言模型的model文件的存储目录

linux ollama deepseek等大语言模型的model文件的存储目录 一、用ollama serve启动的&#xff0c;模型数据存放在&#xff1a; /usr/share/ollama/.ollama/models二、如果在自启动文件中指定了工作目录&#xff0c;则在工作目录下的.ollama/models 1.自启动服务 /etc/system…...

React进阶之React核心源码解析(二)

React核心源码解析 diff单一节点比较diff多节点比较diff两轮遍历比较第一轮比较第二轮比较 Update 状态更新Concurrent Mode diff 一共两个阶段 render&#xff1a;内存中的更新&#xff0c;主要是通过递归的过程&#xff0c;来将react变化的部分&#xff0c;在内存中找到哪些…...

八、OSG学习笔记-

前一章节&#xff1a; 七、OSG学习笔记-碰撞检测-CSDN博客https://blog.csdn.net/weixin_36323170/article/details/145558132?spm1001.2014.3001.5501 一、了解OSG图元加载显示流程 本章节代码&#xff1a; OsgStudy/wids CuiQingCheng/OsgStudy - 码云 - 开源中国https:…...

Python实现随机森林(Random Forest)算法

随机森林&#xff08;Random Forest&#xff09;是一种集成学习方法&#xff0c;通过构建多个决策树并结合它们的预测结果来提高模型的准确性和稳定性。下面是一个使用Python实现随机森林算法的示例。我们将使用scikit-learn库&#xff0c;它提供了方便的接口来实现随机森林。 …...

平方数列与立方数列求和的数学推导

先上结论&#xff1a; 平方数列求和公式为&#xff1a; S 2 ( n ) n ( n 1 ) ( 2 n 1 ) 6 S_2(n) \frac{n(n1)(2n1)}{6} S2​(n)6n(n1)(2n1)​ 立方数列求和公式为&#xff1a; S 3 ( n ) ( n ( n 1 ) 2 ) 2 S_3(n) \left( \frac{n(n1)}{2} \right)^2 S3​(n)(2n(n1)​…...

new和malloc的区别

new malloc流程 new new流程 调用operator new 分配内存&#xff1a;在free store 生成对象 free store 可能在 堆 / 自定义的地方 可以认为虚拟内存到物理内存的映射关系早已完成 若分配内存失败&#xff08;内存空间不够&#xff09;&#xff0c;抛出std::bad_alloc 异常…...