如何使用 Python 模拟 scanf() 方法?


根据 Python 文档

Python 目前没有等效于 scanf() 的方法。一般来说,正则表达式scanf() 格式字符串更强大,但更冗长。下表列出了 scanf() 格式标记和正则表达式之间的近似等效映射。

scanf() 标记正则表达式

%c
.
%5c
.{5}
%d
[-+]?\d+
%e, %E, %f, %g
[-+]?(\d+(\.\d*)?|\.\d+)([eE][-+]?\d+)?
%i
[-+]?(0[xX][\dA-Fa-f]+|0[0-7]*|\d+)
%o
[-+]?[0-7]+
%s
\S+
%u
\d+
%x, %X
[-+]?(0[xX])?[\dA-Fa-f]+

为了从类似

/usr/sbin/sendmail - 0 errors, 4 warnings

这样的字符串中提取文件名和数字,需要使用如下的 scanf() 格式:

%s - %d errors, %d warnings

等效的正则表达式为:

(\S+) - (\d+) errors, (\d+) warnings

更新于: 2023-11-02

6 千次浏览

开启您的 职业生涯

完成课程以获得认证

开始
广告