正则表达式详解

一、正则表达式或符号

正则表达式作为一种表示文本模式的强大工具,包含了多种符号用于匹配文本模式。其中最基础的符号之一就是 “|” 符号,表示或(OR)的关系。

举个例子,我们可以使用正则表达式 “hello|hi|hey” 来匹配三个单词中的任何一个,即匹配文本中出现的 “hello”,“hi”,“hey” 中的任何一个单词。

pattern = re.compile(r"hello|hi|hey")
matches = pattern.findall("Hello, hi, Hey!")
print(matches)  # 输出 ['Hello', 'hi', 'Hey']

二、正则表达式或规则

正则表达式中的 “|” 符号有一个很实用的功能,即能够匹配多种可能性的模式。

举个例子,如果我们想要匹配一个单词是由 “A” 或 “a” 开头的字符串,可以使用正则表达式 “[Aa]\w+”。

“[Aa]” 表示匹配一个以 A 或 a 开头的字符,“\w+” 则表示匹配至少一个“单词字符”(字母、数字或下划线)。

pattern = re.compile(r"[Aa]\w+")
matches = pattern.findall("a12 Apple and A OrAnge!")
print(matches)  # 输出 ['a12', 'Apple', 'And', 'Ange']

三、正则表达式或者怎么表示

正则表达式中的“|”是指或者,可以匹配多个待选字符串,这种情况下,它通常和括号“()”配合使用来表示多个可能结果的组合。

举个例子,如果我们想把一个全名分为三个组:位置,名,姓,可以使用正则表达式“^(Mr|Mrs|Ms)\. (\w+) (\w+)$”。

该正则表达式含义是:以“Mr”,“Mrs” 或者 “Ms” 开头,后接一个以空格分隔的名字(\w+),再后接一个以空格分隔的姓氏(\w+)。

pattern = re.compile(r"^(Mr|Mrs|Ms)\. (\w+) (\w+)$")
matches = pattern.search("Mr. John Smith")
print(matches.groups())  # 输出 ('Mr', 'John', 'Smith')

四、正则表达式或规则

正则表达式中的“|”有时候还可以用于将多个模式合并为一个新模式。例如,“cat|dog” 表示匹配“cat” 或 “dog”。

举个例子,如果我们想匹配一个由数字或字母组成的字符串,可以使用正则表达式 “\d+|[a-zA-Z]+”。

“\d+” 表示匹配一个或多个数字,“[a-zA-Z]+” 表示匹配一个或多个字母。

pattern = re.compile(r"\d+|[a-zA-Z]+")
matches = pattern.findall("abc123def456")
print(matches)  # 输出 ['abc', '123', 'def', '456']

五、正则表达式或关系

正则表达式中的 “|” 符号可以用于表示或关系,而且这种或关系可以串联多个子模式。例如,“apple|orange|banana” 可以匹配文本中包含 “apple”、“orange” 或者 “banana” 中任意一个单词的模式。

该正则表达式实现了默认大小写匹配。

pattern = re.compile(r"apple|orange|banana", re.IGNORECASE)
matches = pattern.findall("I ate an APPLE, an Orange, and a banana.")
print(matches)  # 输出 ['APPLE', 'Orange', 'banana']

六、正则表达式或者怎么写

正则表达式的 “|” 可以用于选择任意多个子模式的匹配。如果需要匹配一个模式序列中的任意一个子模式,可以使用圆括号进行分组。

例如,“(foo|bar|baz)” 可以匹配 “foo”,“bar”,“baz” 中任意一个单词。

pattern = re.compile(r"(foo|bar|baz)")
matches = pattern.findall("foo, bar and baz.")
print(matches)  # 输出 ['foo', 'bar', 'baz']

七、正则表达式或运算符

正则表达式中的或运算符使用“|”进行表示,可以用于匹配两个或多个模式中的任意一个。例如,“(car|train)” 可以匹配 “car” 或 “train” 中任意一个单词。

pattern = re.compile(r"(car|train)")
matches = pattern.findall("I prefer to take the train or car to work.")
print(matches)  # 输出 ['train', 'car']

八、正则表达式或的用法

正则表达式中,“|” 符号可以将两个或多个单词模式进行或操作,并匹配作为单一模式的相应文本。例如,“dog|cat” 可以匹配文本中包含“dog”或“cat”的单词。

pattern = re.compile(r"dog|cat")
matches = pattern.findall("I have a cat and a dog.")
print(matches)  # 输出 ['cat', 'dog']

九、代码部分

import re

# 正则表达式符号
pattern1 = re.compile(r"hello|hi|hey")
matches1 = pattern1.findall("Hello, hi, Hey!")
print(matches1)  # 输出 ['Hello', 'hi', 'Hey']

# 正则表达式或规则
pattern2 = re.compile(r"[Aa]\w+")
matches2 = pattern2.findall("a12 Apple and A OrAnge!")
print(matches2)  # 输出 ['a12', 'Apple', 'And', 'Ange']

# 正则表达式或者怎么表示
pattern3 = re.compile(r"^(Mr|Mrs|Ms)\. (\w+) (\w+)$")
matches3 = pattern3.search("Mr. John Smith")
print(matches3.groups())  # 输出 ('Mr', 'John', 'Smith')

# 正则表达式或规则
pattern4 = re.compile(r"\d+|[a-zA-Z]+")
matches4 = pattern4.findall("abc123def456")
print(matches4)  # 输出 ['abc', '123', 'def', '456']

# 正则表达式或关系
pattern5 = re.compile(r"apple|orange|banana", re.IGNORECASE)
matches5 = pattern5.findall("I ate an APPLE, an Orange, and a banana.")
print(matches5)  # 输出 ['APPLE', 'Orange', 'banana']

# 正则表达式或者怎么写
pattern6 = re.compile(r"(foo|bar|baz)")
matches6 = pattern6.findall("foo, bar and baz.")
print(matches6)  # 输出 ['foo', 'bar', 'baz']

# 正则表达式或运算符
pattern7 = re.compile(r"(car|train)")
matches7 = pattern7.findall("I prefer to take the train or car to work.")
print(matches7)  # 输出 ['train', 'car']

# 正则表达式或的用法
pattern8 = re.compile(r"dog|cat")
matches8 = pattern8.findall("I have a cat and a dog.")
print(matches8)  # 输出 ['cat', 'dog']

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/159632.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-11-20 00:14
下一篇 2024-11-20 00:14

相关推荐

  • Python正则表达式search()和match()有什么区别?

    search()和match()都是Python中的正则表达式函数,它们的作用都是在一个字符串中搜索匹配正则表达式的位置,但它们有着不同的使用场景和返回结果。 一、search()…

    编程 2025-04-29
  • MySQL正则表达式替换

    MySQL正则表达式替换是指通过正则表达式对MySQL中的字符串进行替换。在文本处理方面,正则表达式是一种强大的工具,可以方便快捷地进行字符串处理和匹配。在MySQL中,可以使用正…

    编程 2025-04-27
  • Linux sync详解

    一、sync概述 sync是Linux中一个非常重要的命令,它可以将文件系统缓存中的内容,强制写入磁盘中。在执行sync之前,所有的文件系统更新将不会立即写入磁盘,而是先缓存在内存…

    编程 2025-04-25
  • 神经网络代码详解

    神经网络作为一种人工智能技术,被广泛应用于语音识别、图像识别、自然语言处理等领域。而神经网络的模型编写,离不开代码。本文将从多个方面详细阐述神经网络模型编写的代码技术。 一、神经网…

    编程 2025-04-25
  • 详解eclipse设置

    一、安装与基础设置 1、下载eclipse并进行安装。 2、打开eclipse,选择对应的工作空间路径。 File -> Switch Workspace -> [选择…

    编程 2025-04-25
  • MPU6050工作原理详解

    一、什么是MPU6050 MPU6050是一种六轴惯性传感器,能够同时测量加速度和角速度。它由三个传感器组成:一个三轴加速度计和一个三轴陀螺仪。这个组合提供了非常精细的姿态解算,其…

    编程 2025-04-25
  • Linux修改文件名命令详解

    在Linux系统中,修改文件名是一个很常见的操作。Linux提供了多种方式来修改文件名,这篇文章将介绍Linux修改文件名的详细操作。 一、mv命令 mv命令是Linux下的常用命…

    编程 2025-04-25
  • nginx与apache应用开发详解

    一、概述 nginx和apache都是常见的web服务器。nginx是一个高性能的反向代理web服务器,将负载均衡和缓存集成在了一起,可以动静分离。apache是一个可扩展的web…

    编程 2025-04-25
  • Python输入输出详解

    一、文件读写 Python中文件的读写操作是必不可少的基本技能之一。读写文件分别使用open()函数中的’r’和’w’参数,读取文件…

    编程 2025-04-25
  • Python安装OS库详解

    一、OS简介 OS库是Python标准库的一部分,它提供了跨平台的操作系统功能,使得Python可以进行文件操作、进程管理、环境变量读取等系统级操作。 OS库中包含了大量的文件和目…

    编程 2025-04-25

发表回复

登录后才能评论