Как я могу разделить строку с номерами периодов, запятые - PullRequest
0 голосов
/ 27 апреля 2020

У меня есть строка, как показано ниже

1. menggambarkan , mengecat , melukis;

2. menyalin , membuat; 

3. memotret , film , menjepret

Как я могу разделить их, чтобы строка стала массивом строк, результат будет выглядеть как

menggambarkan
mengecat
melukis 
menyalin 
membuat
memotret 
film
menjepret

ниже, это то, что я уже пробовал

input.Split(new string[] {  " , "}, StringSplitOptions.None)

но как я могу удалить число с точками, такими как 1. 2. 3. и подписать;

Я думаю, что мы можем использовать regex для решения, у вас есть идеи?

Ответы [ 4 ]

1 голос
/ 27 апреля 2020

Подход RegEx для извлечения всех слов

string input = "1. menggambarkan , mengecat , melukis ; 2. menyalin , membuat; 3. memotret , film , menjepret";
string[] result = Regex.Matches(input, "[a-z]+").Cast<Match>().Select(x => x.Value).ToArray();

https://dotnetfiddle.net/mHf1eu

0 голосов
/ 27 апреля 2020

Также вы можете использовать Linq

using System;
using System.Linq;

public class Program
{
    public static void Main()
    {
        var str = "1. menggambarkan , mengecat , melukis ; 2. menyalin , membuat; 3. memotret , film , menjepret";
        str = new string((from c in str
                  where char.IsWhiteSpace(c) || char.IsLetter(c)
                  select c
       ).ToArray());
        Console.WriteLine(str);
        string[] array = str.Split(new string[] {" "}, StringSplitOptions.RemoveEmptyEntries);
        Console.WriteLine(array.Count());
    }
}

Выход

menggambarkan  mengecat  melukis   menyalin  membuat  memotret  film  menjepret
8
0 голосов
/ 27 апреля 2020

Что-то в этом духе. Вы должны удалить соответствующую пустую строку.

using System;
using System.Text.RegularExpressions;  

public class Program
{
    public static void Main()
    {
        string URL = " 1. menggambarkan , mengecat , melukis ; 2. menyalin , membuat ; 3. memotret , film , menjepret";

        string[] splitString = Regex.Split(URL, @"[(\s;\s\d.\s)(\s\d.\s)(\s,\s)]");  

        foreach (var item in splitString)  
        {  
            Console.WriteLine(item);  
        } 
    }
}
0 голосов
/ 27 апреля 2020

Например:

var regex = new Regex(@"^\d+\.\s*");
var s = "1. menggambarkan , mengecat , melukis ; 2. menyalin , membuat; 3. memotret , film , menjepret";
var words = s.Split(new char[]{',', ';'}).Select(w => regex.Replace(w.Trim(), string.Empty));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...