C# 从字符串中筛选文本

C# 从字符串中筛选文本,c#,C#,我现在是这样的: using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Text; using System.Text.RegularExpressions; using System.Threading; using System.Threading.Tasks; namespace ConsoleApplicatio

我现在是这样的:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
using System.Threading.Tasks;

namespace ConsoleApplication2
{
   public class Program
    {
        static void Main(string[] args)
        {

            //Consider making this configurable
            const string sourceFile = "test2.txt";
            const string pattern = "http://10.123.9.66:80";
            //var FirstSeparatorLastNameExact = new[] { "nosyn_name_last_exact:(qxq" };
            //var SecondSeparatorLastNameExact = new[] { "qxq)" };

            string[] FirstSeparator = new string[] { "nosyn_name_last_exact:(qxq" };
            string[] SecondSeparator = new string[] { "qxq)" };

            string[] FirstSeperatorFirstName = new string[] {"nosyn_name_first_exact:(qxq"};
            string[] secondSeperatorFirstName = new string[]{"qxq)"};



            Regex re = new Regex("^(http|https)://");
            HttpWebResponse response;

           // var webClient = new WebClient();
            var times = new Dictionary<string, TimeSpan>();
            var stopwatch = new System.Diagnostics.Stopwatch();

            //Add header so if headers are tracked, it will show it is your application rather than something ambiguous
            //webClient.Headers.Add(HttpRequestHeader.UserAgent, "Response-Tester-Client");

            var urlList = new List<string>();

            //Loop through the lines in the file to get the urls 
            try
            {
                stopwatch.Start();
                using (var reader = new StreamReader(sourceFile))
                {

                    while (!reader.EndOfStream)
                    {
                        var urNewList = new List<string>();
                        var line = reader.ReadLine();
                        //line = line.Substring(line.IndexOf(pattern));
                        //line.Split("\t");
                        var columns = line.Split('\t');
                        //var result = line.Split(Seperator, StringSplitOptions.RemoveEmptyEntries)[1].Split(')')[0];
                        if (columns[2] == "R")
                        {
                            var url = columns[4] + "?" + columns[5];
                            urlList.Add(url);
                            Thread.Sleep(250);
                        }
                        //if (line.Contains(result))
                        //{
                            //MatchCollection matches = Regex.Matches(line, lastName);
                            //foreach (string lines in File.ReadLines(sourceFile))
                            //{

                                //var LastNameSearch = line.Split(FirstSeparatorLastNameExact, StringSplitOptions.RemoveEmptyEntries)[1];
                                //var resultLastNameSearch = LastNameSearch.Split(FirstSeparatorLastNameExact, StringSplitOptions.RemoveEmptyEntries)[0];


                                //var temp = line.Split(FirstSeparator, StringSplitOptions.RemoveEmptyEntries)[1];
                                //var result2 = temp.Split(SecondSeparator, StringSplitOptions.RemoveEmptyEntries)[0];
                                //Console.WriteLine(result2);

                        string[] result = line.Split(FirstSeperatorFirstName, StringSplitOptions.RemoveEmptyEntries);
                        if (result.Length > 2)
                        {
                            string[] inner = result[1].Split(')');
                            if (inner.Length > 1)
                            {
                                Console.WriteLine(inner[0]);
                                Console.WriteLine(result);
                            }
                        }


                        //var split = line.Split(FirstSeperatorFirstName, StringSplitOptions.RemoveEmptyEntries);

                        //if (split.Length > 1)
                        //{
                        //    Console.WriteLine(split[1].Split(')')[0]);
                        //   // Console.WriteLine(split);
                        //}


                    }
                }
            }

            catch (Exception e)
            {
                Console.WriteLine("An error occured while attempting to access the source file at {0}", sourceFile);
            }
            finally
            {
                //Stop, record and reset the stopwatch
                stopwatch.Stop();
                times.Add("FileReadTime", stopwatch.Elapsed);
                stopwatch.Reset();
            }

            //Try to connect to each url
            var counter = 1;
            foreach (var url in urlList)
            {
                try
                {
                    stopwatch.Start();

                    using (WebClient webClient = new WebClient())
                    {

                        webClient.Headers.Add(HttpRequestHeader.UserAgent, "Response-Tester-Client");

                       // HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                        request.Method = "POST";

                        //webClient.Dispose();
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine("An error occured while attempting to connect to {0}", url);
                }
                finally
                {
                    stopwatch.Stop();

                    //We use the counter for a friendlier url as the current ones are unwieldly
                    times.Add("Url " + counter, stopwatch.Elapsed);
                    counter++;

                    stopwatch.Reset();
                }
            }

            //Release the resources for the WebClient 
            //webClient.Dispose();

            //Write the response times

            Console.WriteLine("Url " + "\t\t\t\tLast Name");
            foreach (var key in times.Keys)
            {
                Console.WriteLine("{0}: {1}", key, times[key].TotalSeconds);
            }


            Console.ReadKey();
        }
    }
}
使用系统;
使用System.Collections.Generic;
使用System.IO;
使用System.Linq;
Net系统;
使用系统文本;
使用System.Text.RegularExpressions;
使用系统线程;
使用System.Threading.Tasks;
命名空间控制台应用程序2
{
公共课程
{
静态void Main(字符串[]参数)
{
//考虑使其可配置
常量字符串sourceFile=“test2.txt”;
常量字符串模式=”http://10.123.9.66:80";
//var FirstSeparatorLastNameExact=new[]{“nosyn_name_last_exact:(qxq“};
//var SecondSeparatorLastNameExact=new[]{“qxq)”};
string[]FirstSeparator=新字符串[]{“nosyn\u name\u last\u exact:(qxq“};
字符串[]第二个分隔符=新字符串[]{“qxq)”};
string[]firstSeparatorfirstName=新字符串[]{“nosyn\u name\u first\u exact:(qxq“};
字符串[]SecondSeparatorFirstName=新字符串[]{“qxq)”};
正则表达式re=新正则表达式(“^(http | https):/”;
HttpWebResponse;
//var webClient=新的webClient();
var times=newdictionary();
var stopwatch=new System.Diagnostics.stopwatch();
//添加标题,这样如果跟踪了标题,它将显示它是您的应用程序,而不是不明确的内容
//添加(HttpRequestHeader.UserAgent,“响应测试程序客户端”);
var urlist=新列表();
//循环文件中的行以获取URL
尝试
{
秒表。开始();
使用(var reader=newstreamreader(sourceFile))
{
而(!reader.EndOfStream)
{
var urNewList=新列表();
var line=reader.ReadLine();
//line=line.Substring(line.IndexOf(pattern));
//行分割(“\t”);
var columns=line.Split('\t');
//var result=line.Split(分隔符,StringSplitOptions.RemoveEmptyEntries)[1]。Split('))[0];
如果(列[2]=“R”)
{
变量url=列[4]+“?”+列[5];
添加(url);
睡眠(250);
}
//if(行包含(结果))
//{
//MatchCollection matches=Regex.matches(行,lastName);
//foreach(File.ReadLines(sourceFile))中的字符串行
//{
//var LastNameSearch=line.Split(firstseparator lastnameExact,StringSplitOptions.removemptyEntries)[1];
//var resultLastNameSearch=LastNameSearch.Split(FirstSeparatorLastNameExact,StringSplitOptions.removemptyEntries)[0];
//var temp=line.Split(第一个分隔符,StringSplitOptions.RemoveEmptyEntries)[1];
//var result2=临时拆分(SecondSeparator,StringSplitOptions.RemoveEmptyEntries)[0];
//控制台写入线(结果2);
string[]result=line.Split(firstseparatorfirstname,StringSplitOptions.removeMptyEntries);
如果(结果长度>2)
{
字符串[]内部=结果[1]。拆分(');
如果(内部长度>1)
{
Console.WriteLine(内部[0]);
控制台写入线(结果);
}
}
//var split=line.split(firstseparatorfirstname,StringSplitOptions.removeMptyEntries);
//如果(拆分长度>1)
//{
//Console.WriteLine(拆分[1]。拆分('))[0]);
////Console.WriteLine(拆分);
//}
}
}
}
捕获(例外e)
{
WriteLine(“试图访问位于{0}的源文件时出错,sourceFile”);
}
最后
{
//停止、记录并重置秒表
秒表;
times.Add(“FileReadTime”,stopwatch.appeased);
秒表复位();
}
//尝试连接到每个url
var计数器=1;
foreach(url列表中的变量url)
{
尝试
{
秒表。开始();
使用(WebClient WebClient=new WebClient())
{
添加(HttpRequestHeader.UserAgent,“响应测试程序客户端”);
//HttpWebRequest请求=(HttpWebRequest)WebRequest.Create(url);
HttpWebRequest请求=(HttpWebRequest)WebRequest.Create(url);
request.Method=“POST”;
//webClient.Dispose();
}
}
捕获(例外e)
{
WriteLine(“尝试连接到{0}时发生错误”,url);
}
最后
{
秒表;
//我们使用计数器来创建更友好的url,因为当前的url很难使用
添加(“Url”+计数器,秒表,已用);
计数器++;
秒表复位();
}
}
//释放WebClient的资源
//webClient.Dispose();
//写下回应
test.Split(FirstSeperatorFirstName, StringSplitOptions.RemoveEmptyEntries)[1]
    .Split(')')[0]
    .Dump();
var split = test.Split(FirstSeperatorFirstName, StringSplitOptions.RemoveEmptyEntries);

if (split.Length > 1)
{
    split[1].Split(')')[0].Dump();
}
string[] result = test.Split(FirstSeperatorFirstName, StringSplitOptions.RemoveEmptyEntries);
if(result.Length > 2) {
  string[] inner = result[1].Split(')');
  if(inner.Length > 1) {
    inner[0].Dump();
  }
}
if(test.Contains("nosyn_name_first_exact:(qxq")) {
  // Split and do whatever.
}