繁体   English   中英

删除字符串中第一个“”之后的所有内容? (空间)

[英]Removing everything after the first " " in a string? (space)

我正在尝试删除字符串中第一个空格之后的所有内容,现在我已经尝试过了,但它确实不起作用。

我尝试了什么?

List<string> lines = new List<string>();

foreach (string textLine in richTextBox1.Lines)
{
    lines.Add(textLine.Substring(0, textLine.IndexOf(" ") + 1));
}

richTextBox1.Text = "";

foreach (string line in lines)
{
    richTextBox1.Text += line + Environment.NewLine;
}

字符串示例:

some:kind of string   that I want      totrim please.

现在..它应该删除“some:kind”之后的所有内容,为什么不呢? 它只是在每行的末尾修剪字符的出现,而且只有一次。

我要拆分的内容(代理列表)

83.71.175.121:8080  HTTP    NOA Ireland 30% (9) +   11-jul-2017 21:06
188.120.209.97:53281    HTTPS   HIA Czech Republic  70% (14) +  11-jul-2017 21:05
41.87.86.51:3128    HTTP    NOA Nigeria 64% (9) +   11-jul-2017 21:05
187.84.222.153:80   HTTP    ANM Brazil  61% (160) + 11-jul-2017 21:04
36.78.131.82:3128   HTTP    NOA Indonesia   25% (49) +  11-jul-2017 21:02
181.199.202.248:8080    HTTPS   NOA Spain   38% (35) +  11-jul-2017 21:01
180.253.231.211:8080    HTTPS   NOA Indonesia   new -   11-jul-2017 21:00
110.232.82.253:53695    SOCKS5  HIA Indonesia   60% (3) +   11-jul-2017 20:59
79.127.108.219:8080 HTTPS   NOA Iran, Islamic Republic of   41% (9) +   11-jul-2017 20:58
189.219.24.155:16057    SOCKS5  HIA Mexico  64% (7) +   11-jul-2017 20:58
189.218.237.10:52009    SOCKS5  HIA Mexico  64% (7) +   11-jul-2017 20:58
118.173.67.181:8080 HTTP    NOA Thailand    new +   11-jul-2017 20:55
38.123.201.17:8080  HTTPS   NOA United States   69% (25) +  11-jul-2017 20:55
81.128.165.5:3128   HTTP    ANM United Kingdom  53% (59) +  11-jul-2017 20:54
64.137.185.193:8080 HTTP    NOA Canada  new +   11-jul-2017 20:54
103.76.12.118:8080  HTTPS   NOA Indonesia   46% (75) +  11-jul-2017 20:54
209.141.47.120:80   HTTP    ANM United States   58% (97) +  11-jul-2017 20:53
109.230.100.255:9090    HTTPS   NOA Iran, Islamic Republic of   91% (135) - 11-jul-2017 20:52
180.250.174.251:8080    HTTPS   NOA Indonesia   29% (40) -  11-jul-2017 20:52
180.251.81.2:8080   HTTPS   HIA Indonesia   new +   11-jul-2017 20:51
151.80.197.192:80   HTTP    ANM France  50% (844) + 11-jul-2017 20:50
89.36.212.204:1189  HTTP    NOA France  100% (8) +  11-jul-2017 20:47
109.230.230.209:3128    HTTP    NOA Germany 100% (43) - 11-jul-2017 20:47
36.80.222.186:8080  HTTP    NOA Indonesia   new -   11-jul-2017 20:47
41.204.32.194:53281 HTTPS   HIA Ghana   58% (15) -  11-jul-2017 20:46
188.195.53.120:8080 HTTP    HIA Germany 50% (1) +   11-jul-2017 20:45

做一个string.Split()会更简单:

string input = "some:kind of string   that I want      totrim please."; 
input = input.Split()[0];
//input = "some:kind" now

我什至将您的示例输入添加到我的小提琴中,它完美地工作,小提琴在这里

根据您的数据,问题是您正在寻找空格,但这些值由制表符分隔。 所以你需要使用IndexOf('\t')代替。 或者,使用Split()[0]的解决方案也可以工作,因为它将在任何空白区域(包括制表符)上进行拆分。

尝试使用

lines.Add(textLine.Split(null)[0]);

借助正则表达式进行匹配是另一种方式:

string input = "some:kind of string   that I want      totrim please."; 

// @"^\s*\S*" if you want to ignore leading spaces
input = Regex.Match(input, @"^\S*").Value; 

当我们想去掉空格之后的部分(空格、制表、不间断空格等)时,这会很有帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM