为了让用户进行选择,我想提供一个数字列表,这个列表需要匹配给定的正则表达式。这个正则表达式非常简单,它只能看起来像这样 123[0-9][0-9] 或者 [4-9]34.2
我发现 Fare (https://github.com/moodmosaic/Fare) 可以帮助完成这个任务。请参考下面的示例:
string pattern = "123[0-9][0-9]";
var xeger = new Xeger(pattern);
var match = xeger.Generate(); //match is e.g. "12349"
不幸的是,Fare-lib只给出了一个可能的匹配项,但并没有列出字符串可以有的所有100个可能组合。
如果您认为在这种情况下正则表达式不是一个好主意,并且更愿意建议使用for-loop实现替换字符,那么我也会采用这种方式,但目前我不知道如何做?也许一个递归函数会很聪明?
[0-9]+
期望什么? - L.B[0-9]+
会产生无限的结果。如果您知道模式并且它像您的示例一样是有限制的,则不需要正则表达式。嵌套两个循环就足够了for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } }
。 - L.Bvar list = (from i in Enumerable.Range(0, 10) from j in Enumerable.Range(6, 4) select "1" + i + "3" + j + "5").ToList();
- L.B