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