如何使用C#在两个字符之间提取字符串? [英] How can I extract a string between two character using C#?

查看:425
本文介绍了如何使用C#在两个字符之间提取字符串?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我自动生成的HTML源文本文件如下所示:



<! -  -  
// - >< / SCRIPT>
< script language = JavaScript>
var staMgrParaInf = new 数组 1 0 0 0 10 48 2 1 0 0 0 );
< / script>< script language = JavaScript> var staEntryInf = new 数组 192.168.1.56 0 87357 111282 10432836 103871290 1 1 41 52 192.168.1.21 0 394 42991358 55037052 5 7 260 10360 );< / script>
< / HEAD >
< SCRIPT language = javascript>
var pageRefreshTime = 10 ;





我想只提取这个文字



   192.168.1.56 0  87357  111282  10432836  103871290  1  1  41  52 
192.168.1.21 0 39439 42063 2991358 55037052 5 7 260 , 10360





请帮帮我



i试试这个代码



  private   void  button1_Click( object  sender, EventArgs e)
{
String 行;
字符串 filetext = null ;
int count = 0 ;
使用(System.IO.StreamReader reader = new System.IO.StreamReader( C:\\viewsource.txt))
{
while ((line = reader.ReadLine())!= null
{
if (count == 0
{

if (line.StartsWith( < ))
{

}
else
{
filetext = filetext + line;
}
}
else
{
if (line.StartsWith( <))
{

}
else
{
filetext = filetext + \ n + line;
}
}
count ++;
}
Trace.WriteLine(filetext);

int start = filetext.IndexOf( )+ 1 ;
int end = filetext .IndexOf( ,start);
string result = filetext.Substring(start,end - start);
textBox1.Text = result;
reader.Close();
}
}





我的结果只有这个



  1  0  0  0  10  48  2  1  0  0  0  





i只想提取这个文本



    192.168.1.56 0  87357  111282  10432836  103871290  1  1  41  52 
192.168.1.21 0 39439 42063 2991358 ,< span class =code-digit> 55037052 , 5 7 260 10360

解决方案

< blockquote>尝试:

(?< = Array\()。+(?= \))


试试这个正则表达式模式: \ W((?:\\\ {1,3} \。){3} \d {1,3}。 。(?: \d {1,9},){8} \d {1,9})\W

i have auto generated HTML source text file look like this:

<!--
//--></SCRIPT>
<script language=JavaScript>
var staMgrParaInf = new Array(1,0,0,0,10,48,2,1,0,0,0 );
</script><script language=JavaScript>var staEntryInf = new Array("192.168.1.56",0,87357,111282,10432836,103871290,1,1,41,52,"192.168.1.21",0,394,42991358,55037052,5,7,260,10360);</script>
</HEAD>
<SCRIPT language="javascript">
    var pageRefreshTime = 10;



i want to extract only this text

"192.168.1.56",0,87357,111282,10432836,103871290,1,1,41,52,
"192.168.1.21",0,39439,42063,2991358,55037052,5,7,260,10360



Please help me

i try this code

private void button1_Click(object sender, EventArgs e)
{
    String line;
    String filetext = null;
    int count = 0;
    using (System.IO.StreamReader reader = new System.IO.StreamReader("C:\\viewsource.txt"))
    {
        while ((line = reader.ReadLine()) != null)
        {
            if (count == 0)
            {

                if (line.StartsWith("<"))
                {

                }
                else
                {
                    filetext = filetext + line;
                }
            }
            else
            {
                if (line.StartsWith("<"))
                {

                }
                else
                {
                    filetext = filetext + "\n" + line;
                }
            }
            count++;
        }
        Trace.WriteLine(filetext);

        int start = filetext.IndexOf("(") + 1;
        int end = filetext.IndexOf(")", start);
        string result = filetext.Substring(start, end - start);
        textBox1.Text = result;
        reader.Close();
    }
}



My result only this

1,0,0,0,10,48,2,1,0,0,0



i want to extract only this text

"192.168.1.56",0,87357,111282,10432836,103871290,1,1,41,52,
"192.168.1.21",0,39439,42063,2991358,55037052,5,7,260,10360

解决方案

Try:

(?<=Array\()".+(?=\))


Try this regex pattern: \W((?:\d{1,3}\.){3}\d{1,3}..(?:\d{1,9},){8}\d{1,9})\W


这篇关于如何使用C#在两个字符之间提取字符串?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆