您的位置:

正则表达式详解

一、正则表达式或符号

正则表达式作为一种表示文本模式的强大工具,包含了多种符号用于匹配文本模式。其中最基础的符号之一就是 “|” 符号,表示或(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']