[C#]正規表現で文字列を空白で分割して配列に変換するには?

C#

どうも、ちょげ(@chogetarou)です。

正規表現を使って文字列(string)を空白で分割した配列に変換する方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

正規表現を使って文字列(string)を空白で分割した配列に変換するには、Regex.Split()を使います。

まず、Regexを導入します。

using System.Text.RegularExpressions;

次に、Regex.Split()を呼び出します。

そして、Regex.Split()の第1引数に文字列、第2引数に空白の正規表現のパターンを指定します。

//text=対象の文字列
string[] result = Regex.Split(text, @"\s+");

上記のRegex.Split()は、文字列を空白で分割した配列に変換します。

文字列の左右に空白がある場合、Regex.Split()は、分割後に左右の空白を残します。

もし、分割後に左右の空白を残したくない場合は、System.Linqを導入し、Where()を呼び出します。

using System.Linq;
//文字列の左右の空白を残したくない場合
string[] result = Regex.Split(text, @"\s+").Where(s => s != string.Empty).ToArray();

使用例

using System;
using System.Text.RegularExpressions;

public class Example
{   
	public static void Main()
	{
		string text = "abc  de fg hi  j  k";
		
		string[] result = Regex.Split(text, @"\s+");
		
		foreach(string item in result)
		{
		    Console.WriteLine(item);
		}
 	}
}

使用例2

using System;
using System.Text.RegularExpressions;
using System.Linq;

public class Example
{   
	public static void Main()
	{
		string text = "  abc  de fg hi  j  k";
		
		string[] result = Regex.Split(text, @"\s+").Where(s => s != string.Empty).ToArray();
		
		foreach(string item in result)
		{
		    Console.WriteLine(item);
		}
 	}
}
出力:
abc
de
fg
hi
j
k

コメント

タイトルとURLをコピーしました