У меня есть эта струна:
My name is Marco and I'm from Italy
Я'хочу разделить ее, с разделителем is Marco and
, так что я должен получить массив с
Мое имя
в [0] иЯ из Италии
в [1].Как я могу сделать это с помощью C#?
Я пробовал с:
.Split("is Marco and")
Но он хочет только один символ.
string[] tokens = str.Split(new[] { "is Marco and" }, StringSplitOptions.None);
Если у вас есть один символ-разделитель (например,,
), вы можете сократить его до (обратите внимание на одинарные кавычки):
string[] tokens = str.Split(',');
.Split(new string[] { "is Marco and" }, StringSplitOptions.None)
Рассмотрим пробелы, окружающие "is Marco and"
. Вы хотите включить пробелы в результат или убрать их? Вполне возможно, что вы хотите использовать `"это Марко и" в качестве разделителя...
Вы не разбиваем строку на довольно сложных вложенных строк. Я'd использовать регулярные выражения, а не строки.Сплит. Позже это больше для разбора вам текст.
Например:
var rx = new System.Text.RegularExpressions.Regex("is Marco and");
var array = rx.Split("My name is Marco and I'm from Italy");
Попробуйте функция вместо этого.
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);
Вы можете использовать метод 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);
}
}
}
Читать на C# разбиение строки примеры - точка чистый жемчуг и решение может быть что-то вроде:
var results = yourString.Split(new string[] { "is Marco and" }, StringSplitOptions.None);
Существует версия string.Split
, которая принимает массив строк и параметр StringSplitOptions
: