簡體   English   中英

如何在C#中第一次出現子字符串后刪除字符串中的所有內容

[英]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];

也許您想得太多了,但您的下一個問題可能是:我如何在ampm同時分割字符串?

在所有解決方案中,讓我成為告訴您使用正則表達式的人(總是有一個):

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM