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

【oracle】正则表达式

文章目录

      • 1.介绍
        • 1.1 什么是正则表达式
        • 1.2 什么是Oracle正则表达式
      • 2. Oracle正则表达式的基础知识
        • 2.1 常用的元字符
        • 2.2 常用的转义序列
        • 2.3 常用的量词
      • 3. Oracle正则表达式的函数
        • 3.1 REGEXP_LIKE
        • 3.2 REGEXP_SUBSTR
        • 3.3 REGEXP_REPLACE
        • 3.4 REGEXP_INSTR
        • 3.5 REGEXP_COUNT
      • 4. Oracle正则表达式的应用实例
        • 4.1 使用REGEXP_LIKE进行模式匹配
        • 4.2 使用REGEXP_SUBSTR提取匹配的子串
        • 4.3 使用REGEXP_REPLACE替换匹配的子串
        • 4.4 使用REGEXP_INSTR找到匹配的位置
        • 4.5 使用REGEXP_COUNT计算匹配的次数
      • 5. Oracle正则表达式的性能优化
        • 5.1 正确使用元字符和量词
        • 5.2 使用预编译的正则表达式
        • 5.3 选择合适的正则表达式函数
      • 6. Oracle正则表达式的注意事项
        • 6.1 正则表达式的特殊字符处理
        • 6.2 正则表达式的贪婪匹配和懒惰匹配
      • 7. 实战案例
        • 提取字符串中的年份
        • 验证密码复杂性
        • 提取URL的协议、主机和路径
        • 验证IP地址
        • 提取字符串中的邮件地址
        • 替换HTML标签
        • 提取字符串中的电话号码
        • 匹配信用卡号
        • 提取字符串中的URL
        • 匹配社会安全号码

1.介绍

1.1 什么是正则表达式

正则表达式(Regular Expression),是一种用于处理字符串的强大工具。它主要用于两个方面:

  • 模式匹配:检查一个字符串是否包含某种特定的模式。例如,我们可以使用正则表达式来检查一个字符串是否包含特定的单词或者是否符合特定的格式(如邮件地址、电话号码等)。

  • 字符串操作:基于特定的模式来分割、替换或者提取字符串。例如,我们可以使用正则表达式来替换字符串中的某个单词,或者提取出字符串中符合特定格式的部分。

正则表达式的核心是一套定义模式的语法规则,通过这套规则,我们可以构造出各种复杂的模式。这套语法规则包括了一些特殊的元字符(如.*+等)、转义序列(如\d\w等)和量词(如*+?等)。

1.2 什么是Oracle正则表达式

Oracle正则表达式是Oracle数据库对正则表达式功能的实现。Oracle数据库提供了一组正则表达式函数,这些函数可以在SQL语句中使用,以便在处理字符串数据时使用正则表达式。

这些函数包括:

  • REGEXP_LIKE:检查一个字符串是否匹配一个正则表达式模式。
  • REGEXP_SUBSTR:从一个字符串中提取匹配一个正则表达式模式的子串。
  • REGEXP_REPLACE:替换一个字符串中匹配一个正则表达式模式的部分。
  • REGEXP_INSTR:返回一个字符串中匹配一个正则表达式模式的部分的位置。
  • REGEXP_COUNT:计算一个字符串中匹配一个正则表达式模式的部分的数量。

Oracle正则表达式的语法规则和通用的正则表达式大致相同,但也有一些Oracle特有的规则和特性。

2. Oracle正则表达式的基础知识

2.1 常用的元字符

元字符是正则表达式中具有特殊含义的字符。以下是一些常用的元字符:

  • .:匹配任何单个字符(除了换行符)。
  • ^:匹配输入字符串的开始位置。
  • $:匹配输入字符串的结束位置。
  • *:匹配前面的子表达式零次或多次。
  • +:匹配前面的子表达式一次或多次。
  • ?:匹配前面的子表达式零次或一次。
  • [...]:定义一个字符集,匹配其中任何一个字符。
  • [^...]:定义一个反向字符集,匹配不在其中的任何一个字符。
  • {n}:精确匹配n次。
  • {n,}:匹配n次或更多次。
  • {n,m}:匹配至少n次,但不超过m次。
2.2 常用的转义序列

转义序列是一种特殊的字符序列,用于匹配一类特定的字符。以下是一些常用的转义序列:

  • \d:匹配一个数字字符。等价于[0-9]
  • \D:匹配一个非数字字符。等价于[^0-9]
  • \w:匹配一个单词字符(字母、数字或下划线)。等价于[A-Za-z0-9_]
  • \W:匹配一个非单词字符。等价于[^A-Za-z0-9_]
  • \s:匹配一个空白字符(包括空格、制表符、换页符、换行符等)。
  • \S:匹配一个非空白字符。
2.3 常用的量词

量词用于指定一个字符或一组字符可以出现的次数。以下是一些常用的量词:

  • *:匹配前面的字符或组零次或多次。
  • +:匹配前面的字符或组一次或多次。
  • ?:匹配前面的字符或组零次或一次。
  • {n}:匹配前面的字符或组n次。
  • {n,}:匹配前面的字符或组n次或更多次。
  • {n,m}:匹配前面的字符或组至少n次,但不超过m次。

注意,Oracle正则表达式默认是贪婪匹配,也就是说,会尽可能多地匹配字符。如果要进行最小匹配(也称为懒惰匹配或非贪婪匹配),可以在量词后面添加?,如*?+???{n,m}?等。

3. Oracle正则表达式的函数

Oracle提供了一系列的正则表达式函数,这些函数可以用于在SQL语句中进行复杂的字符串处理。以下是这些函数的详细介绍:

3.1 REGEXP_LIKE

REGEXP_LIKE函数用于检查一个字符串是否匹配一个正则表达式模式。如果匹配,函数返回TRUE,否则返回FALSE

语法:

REGEXP_LIKE(source_string, pattern [, match_parameter])
  • source_string:源字符串,即需要进行匹配的字符串。
  • pattern:正则表达式模式。
  • match_parameter:匹配参数,用于指定匹配的模式。例如,'i'表示忽略大小写,'c'表示区分大小写,'n'表示允许使用.匹配换行符,'m'表示多行模式,'x'表示忽略空白字符和#之后的字符。
3.2 REGEXP_SUBSTR

REGEXP_SUBSTR函数用于从一个字符串中提取匹配一个正则表达式模式的子串。

语法:

REGEXP_SUBSTR(source_string, pattern [, position [, occurrence [, match_parameter [, sub_expression]]]])
  • source_string:源字符串。
  • pattern:正则表达式模式。
  • position:开始搜索的位置,如果省略,默认为1。
  • occurrence:匹配的次数,如果省略,默认为1。
  • match_parameter:匹配参数,同REGEXP_LIKE
  • sub_expression:子表达式的位置,用于提取括号中的子表达式。
3.3 REGEXP_REPLACE

REGEXP_REPLACE函数用于替换一个字符串中匹配一个正则表达式模式的部分。

语法:

REGEXP_REPLACE(source_string, pattern, replace_string [, position [, occurrence [, match_parameter]]])
  • source_string:源字符串。
  • pattern:正则表达式模式。
  • replace_string:替换字符串。
  • position:开始搜索的位置,如果省略,默认为1。
  • occurrence:匹配的次数,如果省略,默认为所有匹配的部分。
  • match_parameter:匹配参数,同REGEXP_LIKE
3.4 REGEXP_INSTR

REGEXP_INSTR函数返回一个字符串中匹配一个正则表达式模式的部分的位置。

语法:

REGEXP_INSTR(source_string, pattern [, position [, occurrence [, return_option [, match_parameter [, sub_expression]]]]])
  • source_string:源字符串。
  • pattern:正则表达式模式。
  • position:开始搜索的位置,如果省略,默认为1。
  • occurrence:匹配的次数,如果省略,默认为1。
  • return_option:返回选项,如果为0,返回匹配的开始位置,如果为1,返回匹配的结束位置,如果省略,默认为0。
  • match_parameter:匹配参数,同REGEXP_LIKE
  • sub_expression:子表达式的位置,用于提取括号中的子表达式。
3.5 REGEXP_COUNT

REGEXP_COUNT函数计算一个字符串中匹配一个正则表达式模式的部分的数量。

语法:

REGEXP_COUNT(source_string, pattern [, position [, match_parameter]])
  • source_string:源字符串。
  • pattern:正则表达式模式。
  • position:开始搜索的位置,如果省略,默认为1。
  • match_parameter:匹配参数,同REGEXP_LIKE

4. Oracle正则表达式的应用实例

以下是一些使用Oracle正则表达式函数的应用实例:

4.1 使用REGEXP_LIKE进行模式匹配

假设我们有一个员工表EMPLOYEES,我们想找出所有名字以字母"A"开头的员工:

SELECT first_name
FROM employees
WHERE REGEXP_LIKE(first_name, '^A');
4.2 使用REGEXP_SUBSTR提取匹配的子串

假设我们有一个字符串,我们想提取其中的数字:

SELECT REGEXP_SUBSTR('123 Main Street', '\d+') AS extracted_number
FROM dual;

这将返回’123’,这是字符串中的第一个数字序列。

4.3 使用REGEXP_REPLACE替换匹配的子串

假设我们有一个字符串,我们想将其中的所有数字替换为’X’:

SELECT REGEXP_REPLACE('123 Main Street', '\d', 'X') AS replaced_string
FROM dual;

这将返回’XXX Main Street’。

4.4 使用REGEXP_INSTR找到匹配的位置

假设我们有一个字符串,我们想找到第一个数字的位置:

SELECT REGEXP_INSTR('123 Main Street', '\d') AS position
FROM dual;

这将返回1,因为第一个数字在字符串的第一个位置。

4.5 使用REGEXP_COUNT计算匹配的次数

假设我们有一个字符串,我们想计算其中的数字的数量:

SELECT REGEXP_COUNT('123 Main Street', '\d') AS count
FROM dual;

这将返回3,因为字符串中有3个数字。

5. Oracle正则表达式的性能优化

使用正则表达式时,性能是一个重要的考虑因素。以下是一些优化Oracle正则表达式性能的建议:

5.1 正确使用元字符和量词

元字符和量词的使用可以大大影响正则表达式的性能。例如,贪婪量词(如*+)可能会导致大量的回溯,从而降低性能。如果可能,使用非贪婪量词(如*?+?),或者使用更具体的模式来减少匹配的可能性。

5.2 使用预编译的正则表达式

预编译的正则表达式可以提高性能,因为它们只需要编译一次,然后可以被多次使用。在Oracle中,可以使用DBMS_SQL包中的REGEXP_LIKE函数来预编译正则表达式。

5.3 选择合适的正则表达式函数

Oracle提供了多种正则表达式函数,每种函数都有其特定的用途。选择最适合你需要的函数可以提高性能。例如,如果你只需要检查一个字符串是否匹配一个模式,而不需要提取或替换匹配的部分,那么REGEXP_LIKE可能是最好的选择。如果你需要提取匹配的部分,那么REGEXP_SUBSTR可能是最好的选择。如果你需要替换匹配的部分,那么REGEXP_REPLACE可能是最好的选择。

此外,如果你的查询涉及到大量的数据,考虑在可能的情况下,使用正则表达式的索引,这可以大大提高查询性能。

6. Oracle正则表达式的注意事项

在使用Oracle正则表达式时,有一些重要的注意事项需要考虑:

6.1 正则表达式的特殊字符处理

正则表达式中的一些字符具有特殊的含义,例如*, +, ?, ., ^, $, |, (), [], {}, \等。如果你想在正则表达式中使用这些字符的字面值,你需要使用\进行转义。例如,如果你想匹配字符串10.00,你需要写成10\.00,否则.将匹配任何字符。

6.2 正则表达式的贪婪匹配和懒惰匹配

正则表达式中的量词默认是贪婪的,这意味着它们会尽可能多地匹配字符。例如,正则表达式a.*b将匹配从第一个a到最后一个b之间的所有字符。

如果你想进行懒惰匹配(即尽可能少地匹配字符),你可以使用?来修改量词。例如,正则表达式a.*?b将匹配从第一个a到第一个b之间的所有字符。

在使用贪婪匹配和懒惰匹配时,需要注意可能的性能影响。贪婪匹配可能会导致大量的回溯,从而降低性能。如果可能,尽量使用更具体的模式来减少匹配的可能性。

7. 实战案例

提取字符串中的年份
  • 如果你想从一个包含日期的字符串中提取年份,你可以使用REGEXP_SUBSTR函数。例如:

    SELECT REGEXP_SUBSTR('The event will happen on 2024-10-29.', '(\d{4})') AS year FROM dual;
    

    这将返回2024

验证密码复杂性
  • 可以使用REGEXP_LIKE函数来验证密码是否包含至少一个大写字母,一个小写字母,一个数字和一个特殊字符。例如:

    SELECT password FROM users WHERE REGEXP_LIKE(password, '(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[\W_])');
    
提取URL的协议、主机和路径
  • 可以使用REGEXP_SUBSTR函数来提取URL的协议、主机和路径。例如:

    SELECT REGEXP_SUBSTR('https://www.example.com/page', '(https?|ftp)://') AS protocol,REGEXP_SUBSTR('https://www.example.com/page', '(https?|ftp)://([^/]+)/') AS host,REGEXP_SUBSTR('https://www.example.com/page', '(https?|ftp)://[^/]+(/.+)') AS path
    FROM dual;
    

    这将返回https://www.example.com/page

验证IP地址
  • 可以使用REGEXP_LIKE函数来验证IP地址。例如:

    SELECT ip FROM ips WHERE REGEXP_LIKE(ip, '^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$');
    
提取字符串中的邮件地址
  • 可以使用REGEXP_SUBSTR函数来提取字符串中的邮件地址。例如:

    SELECT REGEXP_SUBSTR('My email is john.doe@example.com.', '([A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4})') AS email FROM dual;
    

    这将返回john.doe@example.com

替换HTML标签
  • 可以使用REGEXP_REPLACE函数来替换HTML标签。例如:

    SELECT REGEXP_REPLACE('<p>Hello World</p>', '<[^>]+>', '') FROM dual;
    

    这将返回Hello World

提取字符串中的电话号码
  • 可以使用REGEXP_SUBSTR函数来提取字符串中的电话号码。例如:

    SELECT REGEXP_SUBSTR('My phone number is (123) 456-7890.', '\((\d{3})\)\s*(\d{3})-(\d{4})') AS phone FROM dual;
    

    这将返回(123) 456-7890

匹配信用卡号
  • 可以使用REGEXP_LIKE函数来匹配信用卡号。例如:

    SELECT card FROM cards WHERE REGEXP_LIKE(card, '^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$');
    
提取字符串中的URL
  • 可以使用REGEXP_SUBSTR函数来提取字符串中的URL。例如:

    SELECT REGEXP_SUBSTR('Check out https://www.example.com.', '(https?|ftp)://[^\s/$.?#].[^\s]*') AS url FROM dual;
    

    这将返回https://www.example.com

匹配社会安全号码
  • 可以使用REGEXP_LIKE函数来匹配社会安全号码。例如:

    SELECT ssn FROM ssns WHERE REGEXP_LIKE(ssn, '^\d{3}-\d{2}-\d{4}$');
    

以上的每个案例都展示了正则表达式在实际应用中的使用,包括提取、替换、验证和匹配等多种场景。

相关文章:

【oracle】正则表达式

文章目录 1.介绍1.1 什么是正则表达式1.2 什么是Oracle正则表达式 2. Oracle正则表达式的基础知识2.1 常用的元字符2.2 常用的转义序列2.3 常用的量词 3. Oracle正则表达式的函数3.1 REGEXP_LIKE3.2 REGEXP_SUBSTR3.3 REGEXP_REPLACE3.4 REGEXP_INSTR3.5 REGEXP_COUNT 4. Oracl…...

如何找到网上爆款内容,快速复制扩大品牌声量

社媒内容爆款复制是现代营销中的一个重要策略&#xff0c;它对于提升品牌声量、曝光度和知名度具有显著效果。 首先什么是爆款&#xff1f; 爆款内容指的是在社交媒体或其他在线平台上迅速获得大量关注、分享和讨论的内容。 准确、及时找到这部分品牌相关的爆款内容&#xf…...

补齐:相交链表:扣160

梦重新开始的地方 – 相交链表 给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&#xff0c;返回 null 。图示两个链表在节点 c1 开始相交&#xff1a; 示例&#xff1a; 何解&#xff1f; 暴力&…...

Java项目实战II基于Java+Spring Boot+MySQL的智能推荐的卫生健康系统(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 基于Java、…...

NET Core的AOP实施方法1 DispatchProxy

NET Core的AOP实施方法1 DispatchProxy NET Framework的AOP实施方法1 ContextBoundObject NET Framework的AOP实施方法2 RealProxy 源码见Github DispatchProxy NET Core DispatchProxy 是一个在 .NET 框架中引入的概念&#xff0c;特别是在 C# 语言中。它是一种特殊类型的代…...

AIGC生成式人工智能——泼天的富贵(三)

人工智能作为第四次工业革命的标志性技术&#xff0c;正在深刻地改变着全球经济、社会结构和人类生活方式。 今天的人工智能&#xff0c;就像当年的房地产经济&#xff0c;未来至少会有十年的红利期。 一、人工智能&#xff0c;给我带来了第二桶金 你永远赚不到你认知以外的…...

GetX的一些高级API

目录 前言 一、一些常用的API 二、局部状态组件 1.可选的全局设置和手动配置 2.局部状态组件 1.ValueBuilder 1.特点 2.基本用法 2.ObxValue 1.特点 2.基本用法 前言 这篇文章主要讲解GetX的一些高级API和一些有用的小组件。 一、一些常用的API GetX提供了一些高级…...

【笔面试常见题:三门问题】用条件概率、全概率和贝叶斯推导

1. 问题介绍 三门问题&#xff0c;又叫蒙提霍尔问题&#xff08;Monty Hall problem&#xff09;&#xff0c;以下是蒙提霍尔问题的一个著名的叙述&#xff0c;来自Craig F. Whitaker于1990年寄给《展示杂志》&#xff08;Parade Magazine&#xff09;玛丽莲沃斯莎凡特&#x…...

刘艳兵-DBA011-应用使用Oracle数据库,必须启动哪些服务?

应用使用Oracle数据库&#xff0c;必须启动哪些服务&#xff08; &#xff09; A OracleServiceSID B OracleJobSchedulerSID C OracleMTSRecoveryService D OracleHOME_NAMETNSListener 答&#xff1a; A OracleServiceSID D OracleHOME_NAMETNSListener…...

注释多行代码的vim插件

编写vim 插件代码 add_comments.vim function! AddComment()let l:comment #if &filetype cpplet l:comment //elseif &filetype clet l:comment //endiflet [l:start, l:end][ line("<"), line(">") ]let l:commented_lines []for …...

Docker 安装HomeAssistant智能家居系统

HomeAssistant 介绍 简介 Home Assistant是一个自由开源的智能家居自动化平台&#xff0c;它可以控制并监测各种智能家居设备、传感器和其他物联网设备。Home Assistant可以运行在树莓派、NVIDIA Jetson Nano等低功耗设备上&#xff0c;使用户可以快速搭建自己的智能家居系统。…...

21 Docker容器集群网络架构:四、Docker集群网络验证

文章目录 Docker容器集群网络架构:四、Docker集群网络验证4.1 创建网络4.2 查看创建的网络4.2.1 查看节点1创建的网络4.2.2 查看节点2创建的网络4.2.3 查看节点3创建的网络4.3 运行容器并查看4.3.1 运行容器4.3.2 节点1查看4.3.3 节点2查看4.3.4 节点3查看Docker容器集群网络架…...

【Kaggle | Pandas】练习5:数据类型和缺失值

文章目录 1. 获取列数据类型.dtype / .dypes2. 转换数据类型.astype()3. 获取数据为空的列 .isnull()4. 将缺少值替换并且排序.fillna()&#xff0c;.sort_values() 1. 获取列数据类型.dtype / .dypes 数据集中points列的数据类型是什么&#xff1f; # Your code here dtype …...

《YOLO 目标检测》—— YOLO v4 详细介绍

文章目录 一、整体网络结构1. YOLO v4 网络结构图2.对之前版本改进创新的概括 二、对改进创新部分的具体介绍1. 输入端创新2. Backbone主干网络创新CSPDarknet53Mish激活函数Dropblock正则化 3. 特征融合创新SPP模块PAN结构 4. Prediction输出层创新&#xff08;未写完&#xf…...

Ubuntu:通过ssh链接另外一台Ubuntu

本文将介绍通过ssh链接另外一台Ubuntu的方法。 一、安装openssh-server sudo apt update sudo apt install openssh-server二、查看SSH是否运行 sudo systemctl status ssh三、链接 ssh usernameremote_ip_address四、复制A电脑的文件到本地 scp usernameremote_ip_addres…...

黄山谷捷提交创业板IPO注册,募资扩产提升综合竞争力

近日&#xff0c;黄山谷捷股份有限公司&#xff08;下文称“黄山谷捷”&#xff09;申请深交所创业板IPO审核状态变更为“提交注册”。据悉&#xff0c;本次IPO黄山谷捷拟募资50,201.19万元&#xff0c;分别用于功率半导体模块散热基板智能制造及产能提升项目&#xff0c;研发中…...

(python)如何进行加密

代码效果是将输入的四个数字每个加上7&#xff0c;然后除以10的余数&#xff0c;接着再将第一个数字和第三个数字对调&#xff0c;第二个数字和第四个数字对调 # 获取用户输入的四位数字符串 list1 input("请输入你四位数密码&#xff1a;") # 初始化一个空列表来存…...

夸克网盘免费扩容 20T 福利,无限次叠加,亲测有效

新用户用夸克 APP 存资源可得 1T 永久存储空间 &#x1f6a8;此方法仅试用于新用户&#xff0c;并且只能在手机上打开夸克 APP 中去领取&#xff01;pc&#xff0c;ipad 都不行&#xff01;&#xff01;&#xff01; 使用手机打开夸克 APP&#xff0c;保存以下资源可获取 1T …...

开源协议类型及长安链开源协议介绍

截至目前&#xff0c;我国参与国际开源社区协作的开发者数量排名全球第二并推出了众多社区活跃度较高的高质量开源项目&#xff0c;是全球开源生态的重要贡献力量&#xff0c;但在开源治理方面我国还处于发展初期&#xff0c;大部分开发者对开源的印象还限于开放代码、免费使用…...

SQL Server 可观测最佳实践

SQL Server 简介 SQL Server 是微软公司开发的一款关系数据库管理系统&#xff0c;支持企业 IT 环境中的各种事务处理、商业智能和分析应用程序。它支持多种操作系统平台&#xff0c;而无论是物理还是虚拟形式&#xff0c;自建部署环境还是在云环境中&#xff0c;运行的操作系…...

python如何将word的doc另存为docx

将 DOCX 文件另存为 DOCX 格式&#xff08;Python 实现&#xff09; 在 Python 中&#xff0c;你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是&#xff0c;.doc 是旧的 Word 格式&#xff0c;而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)

笔记整理&#xff1a;刘治强&#xff0c;浙江大学硕士生&#xff0c;研究方向为知识图谱表示学习&#xff0c;大语言模型 论文链接&#xff1a;http://arxiv.org/abs/2407.16127 发表会议&#xff1a;ISWC 2024 1. 动机 传统的知识图谱补全&#xff08;KGC&#xff09;模型通过…...

以光量子为例,详解量子获取方式

光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学&#xff08;silicon photonics&#xff09;的光波导&#xff08;optical waveguide&#xff09;芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中&#xff0c;光既是波又是粒子。光子本…...

短视频矩阵系统文案创作功能开发实践,定制化开发

在短视频行业迅猛发展的当下&#xff0c;企业和个人创作者为了扩大影响力、提升传播效果&#xff0c;纷纷采用短视频矩阵运营策略&#xff0c;同时管理多个平台、多个账号的内容发布。然而&#xff0c;频繁的文案创作需求让运营者疲于应对&#xff0c;如何高效产出高质量文案成…...

深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用

文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么&#xff1f;1.1.2 感知机的工作原理 1.2 感知机的简单应用&#xff1a;基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...

RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)

RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发&#xff0c;后来由Pivotal Software Inc.&#xff08;现为VMware子公司&#xff09;接管。RabbitMQ 是一个开源的消息代理和队列服务器&#xff0c;用 Erlang 语言编写。广泛应用于各种分布…...

NPOI Excel用OLE对象的形式插入文件附件以及插入图片

static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...

STM32---外部32.768K晶振(LSE)无法起振问题

晶振是否起振主要就检查两个1、晶振与MCU是否兼容&#xff1b;2、晶振的负载电容是否匹配 目录 一、判断晶振与MCU是否兼容 二、判断负载电容是否匹配 1. 晶振负载电容&#xff08;CL&#xff09;与匹配电容&#xff08;CL1、CL2&#xff09;的关系 2. 如何选择 CL1 和 CL…...

数据库正常,但后端收不到数据原因及解决

从代码和日志来看&#xff0c;后端SQL查询确实返回了数据&#xff0c;但最终user对象却为null。这表明查询结果没有正确映射到User对象上。 在前后端分离&#xff0c;并且ai辅助开发的时候&#xff0c;很容易出现前后端变量名不一致情况&#xff0c;还不报错&#xff0c;只是单…...

Python 高级应用10:在python 大型项目中 FastAPI 和 Django 的相互配合

无论是python&#xff0c;或者java 的大型项目中&#xff0c;都会涉及到 自身平台微服务之间的相互调用&#xff0c;以及和第三发平台的 接口对接&#xff0c;那在python 中是怎么实现的呢&#xff1f; 在 Python Web 开发中&#xff0c;FastAPI 和 Django 是两个重要但定位不…...