【问题标题】:Regular Expression to generate a string生成字符串的正则表达式
【发布时间】:2011-03-11 02:20:34
【问题描述】:

我正在使用一个工具来为我们的数据库生成测试数据。对于字符串字段的列,我们可以选择输入将用于为列生成值的正则表达式。我想要一个生成 15 个字符串的正则表达式,如下所示:

  1. 字符 1-6 应包含 YYMMDD(当前年、月、日),例如“100702”。如果 RegEx 无法确定当前日期,则硬连线值“100702”就可以了。
  2. 字符 7-8 应为“25”或“26”
  3. 字符 9-15 应该是一系列连续的数字,从“0000001”开始,然后是“0000002”等。如果无法做到这一点,则可以使用一组随机但唯一的 7 位数字。

这可能吗?

【问题讨论】:

  • 您可能想提及您正在寻找的正则表达式的“风味”,因为它们可能会有所不同(例如,C# 与 Javascript)
  • 我认为不可能从正则表达式中获取当前日期、递增数字或随机数字集。
  • 除了2[56] 部分之外,这里没有任何东西可以用正则表达式完成。但是,您可以轻松编写一个执行此操作的函数。对于最后一部分,您可以使用运行 ID(例如,在 Oracle 上有一个序列)

标签: regex


【解决方案1】:

不,正则表达式不生成文本,它匹配文本。

但是,如果您使用的是 Java,请查看 Xeger,它可以满足您的需求。


另外,请参阅以下类似问题:
Using Regex to generate Strings rather than match them
How do I generate text matching a regular expression from a regular expression?
Reverse regular expressions to generate data

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-04
    • 1970-01-01
    • 2019-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-29
    相关资源
    最近更新 更多