【问题标题】:Regular expression numeric format with length size of 22 and decimal size of 3 regex正则表达式数字格式,长度大小为 22,十进制大小为 3 正则表达式
【发布时间】:2016-03-18 21:26:36
【问题描述】:

我正在使用分析工具来验证表中的数据。我想检查表中的数据是否符合检查以查看当前市场价值金额 usd 的输入值是否为 22 的长度大小和 3 的十进制大小。我正在使用 ataccamba 分析工具来获取变量。

iif( 匹配(@"^\d{22}.\d{3}$", Current_Market_Value_Amount__USD_), 真假

我希望使此验证规则满足以下要求:

当前市值金额 (USD) 属性应为数字格式,长度为 22,十进制大小为 3

【问题讨论】:

  • 您的编辑进展顺利!您能否添加一些代码上下文(哪种语言,如何声明Current_Market_Value_Amount__USD_ 等等)
  • 另外,如果您收到错误消息,最好告诉我们它所说的内容,而不是 这会返回错误 ;)

标签: regex


【解决方案1】:

您需要通过 \. 转义 .,因为它是具有“匹配任何”含义的元字符。要表示文字 .,请在其前面加上 \ 转义字符。

附带说明:您的 [0-9] 重复可以轻松替换:

^[0-9]{18}\.[0-9]{3}$

这假定总字符串长度必须为 22。

【讨论】:

    【解决方案2】:

    您只需要:

    ^\d{22}\.\d{3}$
    

    由于\d 匹配数字,括号内的数字确保前面的项目重复x 次(或在{m,n} 的情况下从m 到n)。

    顺便说一下,公式里面不支持正则表达式,建议你看看How do I get regex support in excel via a function, or custom function?

    【讨论】:

    • iif( 匹配(@"^\d{22}\.\d{3}$", Current_Market_Value_Amount__USD_), true,false
    • @GeorgeHalford 查看编辑。下一次,你应该明确你想在公式中这样做
    • 我正在使用一个分析工具,它会显示我正在检查的变量,以查看数据是否符合要求(如果它不返回 false)
    • 你应该edit你的问题,解释更多你想要做什么,在什么情况下,然后我们将能够帮助你@GeorgeHalford
    • iif( 匹配(@"^([\d]|1[0,1,2])/([0-9]|[0,1,2][0-9] |3[0,1])/\d{4}$", Maturity_Date), true,false)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多