标签。

输入:

text = "
这是一个测试

这是段落文本

另一个测试
"

输出:

['这是一个测试''另一个测试']

示例代码:

import re

# 示例输入
text = "
这是一个测试

这是段落文本

另一个测试
"


# 编写正则表达式
pattern = r'
(.*?)
'


# 使用 re.findall 提取匹配项
result = re.findall(pattern, text)

# 输出结果
print(result)

这里的(.*?)表示提取任意内容。

提取括号

编写一个正则表达式,从一段文本中提取所有被圆括号()包裹的内容。假设括号内没有嵌套的括号。

输入:

text = "这是一个测试 (带括号的内容) 和另一个 (测试内容)。"

输出:

['带括号的内容''测试内容']

示例代码:

import re

# 示例输入
text = "这是一个测试 (带括号的内容) 和另一个 (测试内容)。"

# 编写正则表达式
pattern = r'((.*?))'

# 使用 re.findall 提取匹配项
result = re.findall(pattern, text)

# 输出结果
print(result)

提取美国电话号码

编写一个正则表达式,从一段文本中提取所有符合美国电话号码格式的内容。美国电话号码通常有以下几种格式:

输入:

text = "我的电话是 (123) 456-7890,另一个是 123.456.7890。"

输出:

['(123) 456-7890''123.456.7890']

示例代码:

import re

# 示例输入
text = "我的电话是 (123) 456-7890,另一个是 123.456.7890。"

# 编写正则表达式
pattern = r'(?d{3})?[-.s]?d{3}[-.s]?d{4}'

# 使用 re.findall 提取匹配项
result = re.findall(pattern, text)

# 输出结果
print(result)

提取文件路径

编写一个正则表达式,从一段文本中提取所有符合文件路径格式的内容。文件路径可以是相对路径或绝对路径,文件名可以包含扩展名。

输入:

text = "文件路径是 /home/user/file.txt,另一个是 ./document/report.pdf。"

输出:

['/home/user/file.txt''./document/report.pdf']

示例代码:

import re

# 示例输入
text = "文件路径是 /home/user/file.txt,另一个是 ./document/report.pdf。"

# 编写正则表达式
pattern = r'(?:.?/w+)+.w+'

# 使用 re.findall 提取匹配项
result = re.findall(pattern, text)

# 输出结果
print(result)

提取邮政编码

编写一个正则表达式,从一段文本中提取所有符合中国大陆邮政编码格式的内容。邮政编码是 6 位数字。

输入:

text = "我的邮政编码是 100000,另一个是 200000。"

输出:

['100000''200000']

示例代码:

import re

# 示例输入
text = "我的邮政编码是 100000,另一个是 200000。"

# 编写正则表达式
pattern = r'bd{6}b'

# 使用 re.findall 提取匹配项
result = re.findall(pattern, text)

# 输出结果
print(result)

b是一个特殊的元字符正则表达式教程,表示「单词边界」(word )。它用于匹配单词的开始或结束位置,而不是匹配具体的字符。单词边界是指单词字符(字母、数字或下划线)与非单词字符(如空格、标点符号等)之间的位置。

「单词边界的定义」

提取注释

编写一个正则表达式,从一段代码中提取所有包含特定注释(如TODO)的代码行。

输入:

code = """
def function():
    # TODO: 完成这个函数
    pass
# 这是一个普通注释
"""

输出:

['    # TODO: 完成这个函数']

示例代码:

import re

# 示例输入
code = """
def function():
    # TODO: 完成这个函数
    pass
# 这是一个普通注释
"""


# 编写正则表达式
pattern = r'^.*TODO.*$'

# 使用 re.findall 提取匹配项,注意使用 re.MULTILINE 参数
result = re.findall(pattern, code, re.MULTILINE)

# 输出结果
print(result)

验证用户名格式

编写一个正则表达式,验证用户名是否符合以下规则:

输入:

username1 = "user_name"
username2 = "1user_name"
username3 = "user.name"
username4 = "user_name1"

输出:

True
False
True
False

示例代码:

import re

pattern = r"^[a-zA-Z][a-zA-Z0-9_.]{3,18}[a-zA-Z]$"

username1 = "user_name"
username2 = "1user_name"
username3 = "user.name"
username4 = "user_name1"
print(bool(re.match(pattern, username1)))  # 输出:True
print(bool(re.match(pattern, username2)))  # 输出:False
print(bool(re.match(pattern, username3)))  # 输出:True
print(bool(re.match(pattern, username4)))  # 输出:False

提取日期时间

编写一个正则表达式正则表达式教程,从文本中提取符合YYYY-MM-DD HH:MM:SS格式的日期和时间。

输入:

text = "事件开始于 2024-11-17 14:30:00,结束于 2024-11-18 17:45:00。"

输出:

['2024-11-17 14:30:00''2024-11-18 17:45:00']

示例代码:

import re

text = "事件开始于 2024-11-17 14:30:00,结束于 2024-11-18 17:45:00。"
pattern = r"d{4}-d{2}-d{2} d{2}:d{2}:d{2}"
result = re.findall(pattern, text)
print(result)

验证密码强度

编写一个正则表达式,验证密码是否符合以下规则:

输入:

password1 = "Password123"
password2 = "password"

输出:

True
False

示例代码:

import re

password1 = "Password123"
password2 = "password"
pattern = r"^(?=.*[a-z])(?=.*[A-Z])(?=.*d).{8,}$"
print(bool(re.match(pattern, password1)))  # 输出:True
print(bool(re.match(pattern, password2)))  # 输出:False

(?=...)这是正则表达式中的前瞻断言( )。它用于在当前位置的后面查找匹配条件,但不消耗字符(即不移动匹配的“游标”)。换句话说,它用于检查某个条件是否成立,但不实际匹配这些字符。

「(?=.*[a-z])」

「(?=.*[A-Z])」

「(?=.*d)」

匹配车牌号码

编写一个正则表达式,匹配符合以下格式的车牌号码:

输入:

text = "我的车牌是 京A12345,另一个是 沪B67890。"

输出:

['京A12345''沪B67890']

示例代码:

import re

text = "我的车牌是 京A12345,另一个是 沪B67890。"
pattern = r"[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-Z]d{5}"
result = re.findall(pattern, text)
print(result)

提取价格范围

编写一个正则表达式,从文本中提取所有符合价格范围格式的内容,例如100-200或$50-$100。

输入:

text = "价格范围是 $50-$100 或 100-200。"

输出:

['$50-$100''100-200']

示例代码:

import re

text = "价格范围是 $50-$100 或 100-200。"
pattern = r'($?d+)-($?d+)'
result = re.findall(pattern, text)
print([f"{a}-{b}" for a, b in result])

验证十六进制颜色

编写一个正则表达式,验证字符串是否是有效的十六进制颜色代码。十六进制颜色代码通常以#开头,后面跟着 6 个十六进制数字(0-9 或 a-f)。

输入:

color1 = "#ff5733"
color2 = "#12345g"

输出:

True
False

示例代码:

import re

color1 = "#ff5733"
color2 = "#12345g"
pattern = r'^#[0-9a-fA-F]{6}$'
print(bool(re.match(pattern, color1)))  # 输出:True
print(bool(re.match(pattern, color2)))  # 输出:False

提取时间戳


限时特惠:
本站持续每日更新海量各大内部创业课程,一年会员仅需要98元,全站资源免费下载
点击查看详情

站长微信:Jiucxh

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注