代码之家  ›  专栏  ›  技术社区  ›  Tom Gullen

c#regexp匹配

  •  1
  • Tom Gullen  · 技术社区  · 15 年前

    我有regexp:

    \[IN\](\d+)\[/IN\]
    

    ...[IN]34[/IN]...
    ...[IN]1[/IN]...
    ...[IN]12[/IN]...
    etc
    

    但对于小数来说,它不太管用

    ...[IN]3.5[/IN]...
    ...[IN]2.8[/IN]...
    ...[IN]9.4[/IN]...
    etc
    

    我怎样才能使它与这些相匹配呢?

    4 回复  |  直到 15 年前
        1
  •  2
  •   Tim Pietzcker    15 年前

    我想应该是这样的:

    [IN](\d+\.?\d*)[/IN]
    

    编辑:测试和更正版本:

    \[IN\](\d+(\.\d+)?)\[\/IN\]
    
        2
  •  2
  •   Michał Niklas    15 年前

    ([\d.]+)
    
        3
  •  2
  •   Sachin Shanbhag    15 年前

    试试这个-

    \[IN\]\d+(\.\d+)?\[/IN\]
    
        4
  •  0
  •   Albin Sunnanbo    15 年前

    像这样的东西

    [IN](\d+|\d+\.\d+)?[/IN]
    

    这可以确保如果有一个点,则在该点之后有一个数字。