[英]c# Increment number within a string
我需要打印從 001 到 100 的所有電子郵件。例如test+001@gmail.com
直到test+100@gmail.com
我正在嘗試使用正則表達式,我將需要增加 1 的數字分開,但我不這樣做不知道如何構造 for 循環。
string email = "test+001@gmail.com";
Regex regex = new Regex(@"\d+");
var parts = email.Split('@');
string prefix = Regex.Replace(email, @"\d+", "");
你可以在沒有正則表達式的情況下做到這一點,通過在循環中迭代從1
到100
數字,並使用字符串插值向電子郵件模板添加一個數字
for (int i = 1; i <= 100; i++)
{
var email = $"test+{i:000}@gmail.com";
Console.WriteLine(email);
}
這里的重點是帶有前導 0 的{i:000}
格式
這是解決方案:
class Program
{
static void Main(string[] args)
{
string email = "test+{0:D3}@gmail.com";
for (int i = 1; i < 101; i++)
{
Console.WriteLine(string.Format(email, i));
}
}
}
輸出:
test+001@gmail.com test+002@gmail.com test+003@gmail.com // etc etc
我有點喜歡只使用Enumerable.Range
的簡單性:
foreach(int i in Enumerable.Range(1, 100))
{
Console.WriteLine($"test+{i:000}@gmail.com");
}
在這里擺弄
你為什么不這樣做呢?
var n = 0;
while(n++ != 100)
{
Console.WriteLine($"test+{n}@gmail.com");
}
Insted 從字符串中增加數字,您每次只需重新創建字符串。
這處理前導零
string email = "test+001@gmail.com";
Regex.Replace(email, @"\d{1,3}", (mtch) =>
{
return (mtch.Success) ? (int.Parse(mtch.Value) + 1).ToString("D3") : string.Empty;
});
替換返回test+002@gmail.com
和其他高達 999 的值。
使用 Linq。
var x=Enumerable.Range(1, 100).Select(x => "test"+x.ToString("000")+"@gmail.com");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.