string s="G03 X-1.5 Y1.5 I-1.5 J0";
char f = ' ';
string a=s.Replace('G',' ');
string b = a.Replace('X', ' ');
string c = b.Replace('Y', ' ');
string d = c.Replace('I', ' ');
string e = d.Replace('J', ' ');
string k = e.Replace('M', ' ');
string[] kk = k.Split(f);
for (int i = 0; i <kk.Length; i++)
{
Console.Write("{0}",kk[i]);
}
这段代码执行完后 为什么数组的长度是10啊 不理解
char f = ' ';
string a=s.Replace('G',' ');
string b = a.Replace('X', ' ');
string c = b.Replace('Y', ' ');
string d = c.Replace('I', ' ');
string e = d.Replace('J', ' ');
string k = e.Replace('M', ' ');
string[] kk = k.Split(f);
for (int i = 0; i <kk.Length; i++)
{
Console.Write("{0}",kk[i]);
}
这段代码执行完后 为什么数组的长度是10啊 不理解
string[]b=a[0].split("-")
数组的元素应该是:
第一个:null(也就是' ')
03
null
-1.5
null
-1.5
null
0
Y1.5
null如果你不返回空的话,可以这样写
K.Split(f,StringSplitOptions.RemoveEmptyEntries);
用下面这个就行.K.Split(f,StringSplitOptions.RemoveEmptyEntries);StringSplitOptions.RemoveEmptyEntries//是移除空的数组元素
f因该是什么类型的,我用 char 他报错呀!
List<string> list = new List<string>();
Regex reg = new Regex(@"-?\d+(?:\.\d+)?");
MatchCollection mc = reg.Matches(str);
foreach(Match m in mc)
{
list.Add(m.Value);
}
foreach (string s in list)
{
richTextBox2.Text += s + "\n";
}
string[] result = Regex.Replace(str, @"(?i)[a-z]+", "").Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
我的txt里面很多数据 不知道正则表达式能通用吗
G03 X-1.5 Y1.5 I-1.5 J0
G01 X-1.5 Y0
G01 X0 Y8.5
G01 X1.5 Y-0
G02 X10 Y-10 I-0 J-10
G01 X0 Y-1.5
G01 X-8.5 Y0
M08
G40
M02把里面的值一行一行的都取去来哦!
using (StreamReader sr = new StreamReader(@"G:\正则学习\test.txt", Encoding.Default))
{
while (sr.Peek() > -1)
{
string[] result = reg.Replace(sr.ReadLine(), "").Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
foreach (string s in result)
{
richTextBox2.Text += s + "\n";
}
richTextBox2.Text += "------------------\n";
}
}
richTextBox2 我没有用winform啊
我用控制台的呀。!
richTextBox2.Text += s + "\n";
如果是近制台的把上面改为:
Console.WritLine(s);
就行.
using (StreamReader sr = new StreamReader(@"G:\正则学习\test.txt", Encoding.Default))
{
while (sr.Peek() > -1)
{
string[] result = reg.Replace(sr.ReadLine(), "").Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
foreach (string s in result)
{
Console.WriteLine(s);
}
Console.WriteLine("------------------");
}
}
Console.ReadLine();