string.Split() で正規表現を使うには?

どうすればいいかというと用意されていないので自前で用意しないといけないみたいです。つまりイカコードです。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            var x = "a,b,c".Split(',');
            var y = "a  b   c".Split(@"\s+");
            Console.WriteLine("");
        }
    }

    public static class StringExtensions
    {
        public static IEnumerable<string> Split(this string self, string pattern)
        {
            return Regex.Split(self, pattern).AsEnumerable();
        }
    }
}

というか、これくらいなら拡張メソッドを準備する方が手間かもしれないですね。using System.Text.RegularExpressions;してからコレでもいいのかも。

var y = Regex.Split("a  b   c", @"\s+")

slice() と splice() の違い

引数違うのもあるけど、配列元に影響するかしないかの違いなのかな。

const ary1 = [11, 22, 33];

// slice(), 元に影響なし, 開始インデックス位置、終了インデックス位置 - 1
const ary2 = ary1.slice(1, 2);
console.log(`ary1 = ${ary1}`);
console.log(`ary2 = ${ary2}`);
console.log("");

// splice(), 元に影響あり, 開始インデックス位置、何個分取ってくるか
const ary3 = ary1.splice(1, 2);
console.log(`ary1 = ${ary1}`);
console.log(`ary3 = ${ary3}`);
ary1 = 11,22,33
ary2 = 22

ary1 = 11
ary3 = 22,33

使えないメソッド名があることを知りました

ある JavaScript の入門サイト見ていて写経してたんですが、どうやっても動いてくれない・・・。具体的にはボタンのクリックイベントだったのですが、サイトとソースコードを見比べても合っているんですよ!なんでダメなの??

困ったのがエラー発生するわけではなく、無反応ということだったので、調べても欲しい解決策をすぐに見つけられなかったことでした。調べるキーワードが無い・・・。

続きを読む