0

我有成千上万的包含数字的文章描述。

他们看起来像:

约 2760h3x1000.5DIN345x1500e34

结果数字应为:

  1. 2760
  2. 1000.5
  3. 1500
  • h3 或 3 不应是解析的结果,因为 h3 只是一个容差
  • e34 也一样
  • DIN345 是一个需要排除的规范(每个数字都带有尾随 DIN 或 BN)

我目前的正则表达式是:

  • [^hHeE]([-+]?([0-9]+\.[0-9]+|[0-9]+))

这解决了一切,但规范。我怎样才能让这个“DIN”和“BN”被视为一个字符?

谢谢,汤姆

4

2 回答 2

1

尝试使用这个正则表达式:

(?<=x)[+-]?0*[0-9]+(?:\.[0-9]+)?|[+-]?0*[0-9]+(?:\.[0-9]+)?(?=h|e)

看起来你想要匹配的测试用例中的每个数字都以 x 开头。

这是正则表达式的第一部分匹配的内容。(?<=x)[+-]?0*[0-9]+(?:\.[0-9]+)?

正则表达式的第二部分匹配直到 h 或 e 的数字。[+-]?0*[0-9]+(?:\.[0-9]+)?(?=h|e)

正则表达式中的两部分[+-]?0*[0-9]+(?:\.[0-9]+)?是为了匹配数字。

于 2014-07-30T20:39:36.597 回答
0

如果我们可以假设数字总是四位数,您可以使用正则表达式:

    (\d{4}\.\d+|\d{4})

演示

根据您可能需要替换为的\d语言[0-9]

于 2014-07-30T16:56:09.393 回答