`
- a-1
- b-2
- c-3
`.replace(/^\- /g, "")
// "
// - a-1
// - b-2
// - c-3
// "
だと ^ が1行目にしかマッチしないので消えてくれないm オプションをつけるとそれぞれの行にマッチするので消せる
`
- a-1
- b-2
- c-3
`.replace(/^\- /gm, "")
// "
// a-1
// b-2
// c-3
// "
この方法でインデントを消そうとしたら
`
a
b
c
d
`.replace(/^\s{4}/gm, "")
// " a
// b
// c
// d
// "
なぜか a だけ前に空白が残ってる原因は実行時には 1 行目のマッチで \n と次の行の半角スペース 3 つまでマッチしてるから
空白文字 4 つは \n を含んでそのまま次の行も対象になってる
a のある行の ^ はすでにマッチしてる部分になるので この行の空白はマッチしない
a の前にスペースが 10 個あっても 3 つ削られた 7 つが残る
改行文字がマッチしないように \s より半角スペースは \t をちゃんと指定したほうが良さそう