【问题标题】:Create a Dev Express "simplified regular expression"创建 Dev Express “简化正则表达式”
【发布时间】:2013-09-10 12:16:36
【问题描述】:

我似乎在Dev Express Documentation 中找不到任何关于“简化正则表达式”的文档。我有一个信用卡字段可以验证普通信用卡的格式,但有些信用卡只有 15 位数字,我不知道如何制作可变掩码。

这是我现在的面具

SaveLiteral = 假,

MaskType = 常规,

EditMask ='[*3-6]{1}[*0-9]{3}-[*0-9]{4}-[*0-9]{4}-[*0-9 ]{4}'

我猜是最后一个变量

'{4}'

需要说类似

'{3-4}'

但是当我这样做时,我收到一个对象初始化错误。

如果我没看错,它会说 [allowed chars]{how many} static char [allowed chars]{How many} 等

这就是为什么我认为我需要弄清楚如何为最后一个尺寸制作一个可变数字。

【问题讨论】:

  • 这是一个应该有帮助的页面 - documentation.devexpress.com/#WindowsForms/CustomDocument1499
  • 你的信用卡号里真的是星号*吗?
  • @Sniffer 我没有构建这个我只是想修改它。我不知道他们为什么把它放在那里。可能是因为有人可能会导入预先屏蔽的信用卡。不过我不知道,问他们。
  • @Sniffer 我阅读了 Vijay 发布的页面。看起来 * 是量词而不是字符
  • * 在字符类 [...] 之外使用时是一个量词,但在您的情况下它是一个文字字符。

标签: c# regex winforms devexpress


【解决方案1】:

如果你想在正则表达式中匹配 3 或 4 次的重复,那么它会是:

{3,4}

[*3-6]{1}[*0-9]{3}-[*0-9]{4}-[*0-9]{4}-[*0-9]{3,4}

【讨论】:

    【解决方案2】:

    量词的正确语法是{MIN,MAX}

    所以

    [*3-6]{1}[*0-9]{3}-[*0-9]{4}-[*0-9]{4}-[*0-9]{3,4}
    

    应该是你要找的。​​p>

    我写了一篇关于这个话题的博文:You do know Quantifiers. Really?

    还有official documentation about Quantifiers in .net

    还有general .net regex docs

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-31
      相关资源
      最近更新 更多