Regex 用正则表达式解析字符串中的数字

Regex 用正则表达式解析字符串中的数字,regex,numbers,integer,trailing,Regex,Numbers,Integer,Trailing,我有数千篇包含数字的文章描述 它们看起来像: 约2760h3x1000.5DIN345x1500e34 得出的数字应为: 2760 1000.5 一千五百 h3或3不应是解析的结果,因为h3只是一个公差 e34也一样 DIN345是需要排除的标准值(每个数字后面都有DIN或BN) 我现在的正则表达式是: [^hHeE]([-+]?([0-9]+\[0-9]+|[0-9]+)) 这解决了除规范之外的所有问题。我怎样才能把这个“DIN”和“BN”当作一个单独的字符来处理呢 Thanx,Tom

我有数千篇包含数字的文章描述

它们看起来像:

约2760h3x1000.5DIN345x1500e34

得出的数字应为:

  • 2760
  • 1000.5
  • 一千五百
    • h3或3不应是解析的结果,因为h3只是一个公差
    • e34也一样
    • DIN345是需要排除的标准值(每个数字后面都有DIN或BN)
    我现在的正则表达式是:

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

    这解决了除规范之外的所有问题。我怎样才能把这个“DIN”和“BN”当作一个单独的字符来处理呢


    Thanx,TomE

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

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


    根据可能需要将
    \d
    替换为
    [0-9]

    的语言,请尝试使用以下正则表达式:

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

    (?哪种语言?不同语言的正则表达式不一样languages@Avinash我认为编辑的结果不太正确。OP:Lookarounds可能就是你要找的东西。@Michelle回复说..你是说这个吗?所有的字符串都是那种格式吗?
    ca.####h3x####DINx######e34
    ?如果不是,你能给我们看看其他格式和预期产量?