求可拆分每行内容为integer_1、integer2、无引号字符串的Python3正则表达式
Python3 正则表达式提取整数与文件路径
核心匹配模式
针对每行整数 整数 '文件路径'的格式,推荐使用以下正则表达式:
^(\d+) (\d+) '([^']+)'$
模式拆解
^:锚定行的起始位置,确保从行首开始匹配(\d+):捕获第一个整数,\d+匹配1个及以上数字:匹配两个整数之间的单个空格(若行内分隔是多个空格/制表符,替换为\s+即可)(\d+):捕获第二个整数':匹配整数与单引号路径之间的空格+单引号([^']+):捕获单引号内的完整路径,[^']+匹配除单引号外的任意字符'$:匹配结尾的单引号并锚定行尾
Python 代码示例
import re # 适配单个空格分隔的模式 pattern = r"^(\d+) (\d+) '([^']+)'$" # 若分隔符是任意空白符(空格/制表符等),用这个模式: # pattern = r"^(\d+)\s+(\d+)\s+'([^']+)'$" # 测试行 test_line = "123 456 '/home/user/docs/report.pdf'" match_result = re.match(pattern, test_line) if match_result: integer_1 = match_result.group(1) integer_2 = match_result.group(2) file_path = match_result.group(3) print(f"整数1: {integer_1}, 整数2: {integer_2}, 文件路径: {file_path}")
特殊情况处理
如果文件路径中包含转义的单引号(比如'user\'s_file.txt'),需要调整正则以支持转义字符:
^(\d+) (\d+) '((?:\\'|[^'])+)'$
这里(?:\\'|[^'])+表示匹配转义单引号\'或非单引号的任意字符,确保转义的单引号不会被当成路径结束符。
内容的提问来源于stack exchange,提问作者hydra3333
相关产品推荐
相关产品推荐

