【问题标题】:Regular expression for string price with hyphen [closed]带有连字符的字符串价格的正则表达式[关闭]
【发布时间】:2013-09-25 13:11:24
【问题描述】:

我可以有一个正则表达式来识别下面提到的动态变化文本吗?

"5.6-grooming" 

5.6 = price 以字符串形式出现。价格可以是小数点后两位的任意数字。

-之后可以有任意字符串值

【问题讨论】:

  • @devnull 为什么是文字括号?
  • @arshajii 所以. 被解释为一个literal
  • @devnull 我指的是\(\)
  • @sampath 您应该指定环境、要捕获的内容以及数字的可变性,因为每个人都在做出不同的猜测...根据您所说的,5\.6\-可能是一个答案...
  • @SmokeyPHP 是的,可以。但只有 2 位小数。

标签: c# regex


【解决方案1】:

"\d+(?:\.\d+)?" 只解析一个整数或双精度值

【讨论】:

  • 感谢支持。它正在工作。
  • 前面@有什么用?
  • 已移除。在 asp.net 应用程序上使用 c# 时需要此功能。
  • 所以,当您发帖时,您应该在其中提及。帮助他人
【解决方案2】:

试试这个:

/^\([0-9]\+\|[0-9]*\.[0-9]\+\)-.*$/

【讨论】:

    【解决方案3】:

    你可以试试这个:

    \d+(\.\d\d?)?-.*
    
    • \d+ : 用于十进制数字的左边
    • (.\d\d?)? : 将不匹配小数点,小数点后一位数,小数点后两位数

    所以对于价格,56.78.91这三种情况都会匹配

    【讨论】:

      【解决方案4】:
      1. 标识是否已通过价格。

        ^[\d]*(.[\d]+)?\-.*

      2. 获取价格

        ^[\d]*(.[\d]+)?

      【讨论】:

      • 您不需要 [] 围绕单个实体...而 * 表示这将匹配单词而没有任何价格。
      • @beroe:我更喜欢包含 [] 只是为了便于阅读和维护。如果你想在课堂上添加新角色,那很容易。第一颗星涵盖了(.254)等价格。如果您提供了诸如“-item”之类的东西,那么它将与没有价格的作品相匹配,这不是预期的。我假设如果有连字符,那么在那之前会有价格。
      【解决方案5】:

      匹配实数和整数的简单模式是,

      `/^[\d.]+/`
      

      用“.”专门匹配一个实数

      `/^\d[.][\d.]*/`
      

      匹配字符串中的价格

      `/^\d[.][\d.]*-.+$/`
      

      将捕获括号放在您感兴趣的部分周围。 仅捕获数字 /^(\d[.][\d.]*)-.+$/

      祝你好运

      【讨论】:

        【解决方案6】:
        /\d+(\.\d\d)?\-.+/
        

        \d+ - 一个或多个数字

        (\.\d\d)?“。”后跟两位数(可选)

        \-.+ 一个“-”后跟一个或多个字符(任何字符 = .

        /(\d+(\.\d\d)?)\-.+/
        

        将整数放入匹配组 1

        【讨论】:

          猜你喜欢
          • 2014-08-30
          • 1970-01-01
          • 1970-01-01
          • 2020-06-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-01-21
          相关资源
          最近更新 更多