[英]How to remove everything in a string after first occurence of a substring in c#
我有一個弦
string date = "2017-04-06 05:00:00 am +8:30a.m";
我需要在第一次出現am之后修剪上面的字符串,我的輸出應該是
2017-04-06 05:00:00 am
如何實現這一目標?
這應該有所幫助:
string date = "2017-04-06 05:00:00 a.m. +8:30a.m";
var s = date.Substring(0, date.IndexOf("a.m") + "a.m".Length);
如果可以確保所有記錄的格式都相同,則可以使用Substring
。 使用以下內容;
date.Substring(0, 22));
其中0是startIndex,22是您需要的字符串的長度。
否則,如果長度不固定,則可以繼續使用Split
功能。
Dim result As String() = input.Split(New String() {"am"}, StringSplitOptions.None);
但是,結果是數組中的a
date = result(0);
str.substring(0,str.indexOf(“ am”));
要么
String.split,限制為1
str.split(“ am”,1)[0];
也許您想得太多了,但您的下一個問題可能是:我如何在am
和pm
同時分割字符串?
在所有解決方案中,讓我成為告訴您使用正則表達式的人(總是有一個):
string date = "2017-04-06 05:00:00 a.m. +8:30a.m";
var s = Regex.Match(date, @"(.+[ap]\.m\.)").Groups[1];
這不僅可以讓您以am為日期,而且可以以pm為日期,並且當格式更改時,您只需要更改模式,而不必更改Substring方法的內部工作原理。 可能您想將其重構為 Groups
但這取決於您。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.