本文共 1360 字,大约阅读时间需要 4 分钟。
Python 正则表达式 提取 括号 内 的 数字
在 Python 开发过程中,有时 需要 从 字符串 中 提取 括号 内 的 数字。这可以 通过 使用 正则 表达式 来 实现。以下 是 使用 Python 的 re 模块 的 简单 示例。
首先,导入 re 模块:
import re
接下来,定义 需要 解析 的 字符串:
string = "The answer is (42), the question is what?"
然后,使用 re.findall 函数 来 找到 所有 括号 内 的 数字:
matches = re.findall(r'\(([0-9]+)\)', string)
返回 的 matches 是 一个 列表,包含 所有 括号 内 的 数字。例如:
print(matches) # 输出:['42']
如果 需要 提取 第一个 匹配 到 的 数字,可以 直接 访问 matches[0]:
first_match = matches[0]print(first_match) # 输出:'42'
在 上述 正则 表达式 \(([0-9]+)\) 中,([0-9]+) 是 一个 捕获 组,它 匹配 一个 或 多个 数字。左括号 ( 和 右括号 ) 是 正则 表达式 中的 特殊 字符,需要 用 转义字符 \ 来 表示。
需要注意的是,上述 示例 假设 每个 括号 内 只 包含 一个 数字。如果 括号 内 可能 包含 多个 数字,正则 表达式 需要 进行 相应 修改。例如:
string = "The answer is (1, 2, 3), the question is what?"
使用下面的 正则 表达式:
matches = re.findall(r'\(([0-9]+)\)', string)
返回 的 列表 将 包含 所有 括号 内 的 数字:
print(matches) # 输出:['1', '2', '3']
为了 测试 该 函数,可以 编写以下 函数:
def test_get_numbers(): assert get_numbers("The answer is (42), the question is what?") == ['42'] assert get_numbers("The answer is (1, 2, 3), the question IS what?") == ['1', '2', '3'] assert get_numbers("No numbers here") == [] 运行 测试 函数:
test_get_numbers()
如果 所有 测试 都 获得通过,函数 将 输出 "All tests passed."。
关于 人工智能 大 模型 的 应用,这个 示例 可能 没有 特别 大 的 应用 场景。但是 如果 你 希望 在 大 型 文本 中 快速 找到 所有 数字,你 可能 需要 使用 专门 的 自然语言 处理 工具 或 大 模型。例如,你 可以 在 大型 文本 中 使用 大 模型 来 找到 所有 数字,然后 在 Python 中 找到 这些 数字 在 文本 中 的位置。
转载地址:http://dsafk.baihongyu.com/