too*_*are 17 c# regex string digits
我一直在寻找一段时间来弄清楚如何确认字符串以数字开头.我遇到了一个正则表达式'/ ^\d /',我可以确认如果以数字开头.但是我似乎无法在下面的代码中使用它.我在声明中哪里出错了if(Regex.Match(info,"/^\d/"))?
//String attachbody is the attachment body from an email C read into a string
string[] data = Regex.Split(attachbody, "\n");
foreach (String info in data)
{
if (Regex.Match(info,"/^\d/"))
{
string[] tabbedHeaderData = Regex.Split(info, "\t");
TicketID = tabbedHeaderData[0].ToString();
Status = tabbedHeaderData[1].ToString();
URL = tabbedHeaderData[2].ToString();
InitCats = tabbedHeaderData[3].ToString();
PostRevCats = tabbedHeaderData[4].ToString();
ListNumClosed = tabbedHeaderData[5].ToString();
Console.WriteLine(TicketID);
Console.WriteLine(Status);
Console.WriteLine(URL);
Console.WriteLine(InitCats);
Console.WriteLine(PostRevCats);
Console.WriteLine(ListNumClosed);
Console.ReadLine();
}
}
Run Code Online (Sandbox Code Playgroud)
示例数据(制表符分隔):
TicketID状态URL InitCats PostRevCats ListNumClosed 555555已关闭 http://5555555.com/searcho 恶意站点55555
Dar*_*rov 53
你的正则表达式是错的./.../是用于定义正则表达式的javascript约定.在C#中尝试这样:
if (Regex.IsMatch(info, @"^\d"))
Run Code Online (Sandbox Code Playgroud)
另请注意,您应该使用返回布尔值的IsMatch方法,否则您的代码甚至无法编译.
如果你想匹配字符串以一个或多个数字开头:
if (Regex.IsMatch(info, @"^\d+"))
Run Code Online (Sandbox Code Playgroud)
age*_*t-j 28
你不需要正则表达式.尝试
if (info.Length > 0 && char.IsDigit(info[0]))
{
...
}
Run Code Online (Sandbox Code Playgroud)
如果你想使用正则表达式,那就取消//它吧Regex.IsMatch(info,@"^\d").