如何使用 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
广告