Câu trả lời:
http://msdn.microsoft.com/en-us/l Library / system.opes.split.aspx
Ví dụ từ các tài liệu:
string source = "[stop]ONE[stop][stop]TWO[stop][stop][stop]THREE[stop][stop]";
string[] stringSeparators = new string[] {"[stop]"};
string[] result;
// ...
result = source.Split(stringSeparators, StringSplitOptions.None);
foreach (string s in result)
{
Console.Write("'{0}' ", String.IsNullOrEmpty(s) ? "<>" : s);
}
Bạn có thể sử dụng phương thức Regex.Split , đại loại như thế này:
Regex regex = new Regex(@"\bis\b");
string[] substrings = regex.Split("This is a sentence");
foreach (string match in substrings)
{
Console.WriteLine("'{0}'", match);
}
Chỉnh sửa : Điều này thỏa mãn ví dụ bạn đã đưa ra. Lưu ý rằng một String.Split thông thường cũng sẽ phân tách trên " is " ở cuối từ "This", do đó tại sao tôi sử dụng phương thức Regex và bao gồm các ranh giới từ xung quanh " is ". Tuy nhiên, lưu ý rằng nếu bạn vừa viết ví dụ này bị lỗi, thì String.Split có thể sẽ đủ.
Dựa trên các phản hồi hiện có trên bài đăng này, điều này giúp đơn giản hóa việc thực hiện :)
namespace System
{
public static class BaseTypesExtensions
{
/// <summary>
/// Just a simple wrapper to simplify the process of splitting a string using another string as a separator
/// </summary>
/// <param name="s"></param>
/// <param name="pattern"></param>
/// <returns></returns>
public static string[] Split(this string s, string separator)
{
return s.Split(new string[] { separator }, StringSplitOptions.None);
}
}
}
string s = "This is a sentence.";
string[] res = s.Split(new string[]{ " is " }, StringSplitOptions.None);
for(int i=0; i<res.length; i++)
Console.Write(res[i]);
EDIT: "is" được đệm ở cả hai bên với khoảng trắng trong mảng để duy trì thực tế là bạn chỉ muốn từ "được" xóa khỏi câu và từ "này" vẫn còn nguyên.
Bạn có thể sử dụng String.Replace () để thay thế chuỗi phân tách mong muốn của mình bằng một ký tự không xuất hiện trong chuỗi và sau đó sử dụng String.Split trên ký tự đó để phân tách chuỗi kết quả cho cùng một hiệu ứng.
Đây là một hàm mở rộng để thực hiện phân tách bằng dấu tách chuỗi:
public static string[] Split(this string value, string seperator)
{
return value.Split(new string[] { seperator }, StringSplitOptions.None);
}
Ví dụ về cách sử dụng:
string mystring = "one[split on me]two[split on me]three[split on me]four";
var splitStrings = mystring.Split("[split on me]");
var dict = File.ReadLines("test.txt")
.Where(line => !string.IsNullOrWhitespace(line))
.Select(line => line.Split(new char[] { '=' }, 2, 0))
.ToDictionary(parts => parts[0], parts => parts[1]);
or
enter code here
line="to=xxx@gmail.com=yyy@yahoo.co.in";
string[] tokens = line.Split(new char[] { '=' }, 2, 0);
ans:
tokens[0]=to
token[1]=xxx@gmail.com=yyy@yahoo.co.in
string strData = "This is much easier"
int intDelimiterIndx = strData.IndexOf("is");
int intDelimiterLength = "is".Length;
str1 = strData.Substring(0, intDelimiterIndx);
str2 = strData.Substring(intDelimiterIndx + intDelimiterLength, strData.Length - (intDelimiterIndx + intDelimiterLength));