#numbers #extract #scan #text #simd

nightly no-std numscan

从文本中提取数字

1 个不稳定版本

0.1.0 2022年9月1日

#91#scan

MIT/Apache

13KB
161

numscan

用于从字符串中提取数字的实验性实用工具。需要nightly版本。


lib.rs:

numscan

用于在文本中查找数字的库。

  • 数字必须包含数字。
  • 数字可能以负号(-)开头。
  • 数字可能包含数字、点和逗号。
  • 数字以第一个非数字字符结束或第二个点,而不是逗号或点。
  • 该库仅查找ASCII数字(与阿拉伯数字等相对比)
  • 逗号分隔符可以使用,它们大多被忽略。

示例

use numscan::NumberScanner;

let input = "1.9 - (-1.7) + 1,000 is 1,000.2.";
let output = NumberScanner::from(input).collect::<Vec<_>>();

assert_eq!(
  output,
  [
    0..3,   // "1.9"
    7..11,  // "-1.7"
    15..20, // "1,000"
    24..31, // "1,000.2"
  ]
);

提示:解析

该库返回范围,您可以使用它们对数字进行索引。在您可能希望将它们解析为数字的常见场景中,请记住

  • 如果您对精度有要求,您可能需要使用十进制库
  • 字符串可能包含逗号,您的数字类型解析函数可能不接受,因此您可能需要在尝试解析之前删除它们。

依赖项

~29KB