Как я могу разделить строку с разделителем строк?
У меня есть эта строка:
My name is Marco and I'm from Italy
Я хотел бы разделить его, с разделителем is Marco and
, поэтому я должен получить массив с
-
My name
в [0] и -
I'm from Italy
в [1].
Как я могу сделать это с С#?
Я пробовал с:
.Split("is Marco and")
Но он хочет только один символ.
Ответы
Ответ 1
string[] tokens = str.Split(new[] { "is Marco and" }, StringSplitOptions.None);
Если у вас есть один разделитель символов (например, ,
), вы можете уменьшить это (обратите внимание на одинарные кавычки):
string[] tokens = str.Split(',');
Ответ 2
.Split(new string[] { "is Marco and" }, StringSplitOptions.None)
Рассмотрим пространства, сходящие "is Marco and"
. Вы хотите включить пробелы в свой результат или хотите удалить их? Вполне возможно, что вы хотите использовать " is Marco and "
как разделитель...
Ответ 3
Вы разбиваете строку на довольно сложную подстроку. Я бы использовал регулярные выражения вместо String.Split. Более поздняя версия больше для токенизации текста.
Например:
var rx = new System.Text.RegularExpressions.Regex("is Marco and");
var array = rx.Split("My name is Marco and I'm from Italy");
Ответ 4
Попробуйте эту функцию вместо этого.
string source = "My name is Marco and I'm from Italy";
string[] stringSeparators = new string[] {"is Marco and"};
var result = source.Split(stringSeparators, StringSplitOptions.None);
Ответ 5
Вы можете использовать метод IndexOf
, чтобы получить местоположение строки, и разделить его, используя эту позицию, и длину строки поиска.
Вы также можете использовать регулярное выражение. Простой google search получился с этим
using System;
using System.Text.RegularExpressions;
class Program {
static void Main() {
string value = "cat\r\ndog\r\nanimal\r\nperson";
// Split the string on line breaks.
// ... The return value from Split is a string[] array.
string[] lines = Regex.Split(value, "\r\n");
foreach (string line in lines) {
Console.WriteLine(line);
}
}
}
Ответ 6
Прочитайте примеры строк С# Split String - Dot Net Pearls, и решение может быть примерно таким:
var results = yourString.Split(new string[] { "is Marco and" }, StringSplitOptions.None);
Ответ 7
Существует версия string.Split
, которая принимает массив строк и параметр StringSplitOptions
:
http://msdn.microsoft.com/en-us/library/tabh47cf.aspx