在我的应用程序中,用户可以将自己的正则表达式模式输入到文本框中,这样他就可以强制为另一个用户/文本框输入特定的输入.用户是否可以查看与他输入的正则表达式匹配的字符串示例?例如,如果他要输入:^[A-Z]{2}$
,它将生成一个类似" XX
" 的字符串,以向用户显示他只能输入两个大写字母.
如果没有简单的方法来实现这一点(我认为没有),那么构建有多难?或者这样的事情已经存在?
查看Xeger.看起来它可以做你想要的.它虽然在Java中.
以下是测试套件中的示例:
@Test
public void shouldGenerateTextCorrectly() {
String regex = "[ab]{4,6}c";
Xeger generator = new Xeger(regex);
for (int i = 0; i < 100; i++) {
String text = generator.generate();
assertTrue(text.matches(regex));
}
}
Run Code Online (Sandbox Code Playgroud)
更新:感谢Nikos Baxevanis,dk.brics.automaton已经移植到C#,https://github.com/moodmosaic/Fare
对于C#,您可能还想查看项目费用.有关详细信息,请查看此答案.
例
var regex = @"((mailto\:|(news|(ht|f)tp(s?))\://){1}\S+)";
var xeger = new Xeger(regex);
var result = Regex.IsMatch(xeger.Generate(), regex);
// -> Prints 'true'
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5044 次 |
最近记录: |