如何用正则按首行删除缩进?

是否有办法用正则匹配,按照首行n个空格数,删除每行前n个字符?
例如有一段字符串:

"    if (a > b) \n        return true;\n    return false;"

效果:

    if (a > b) 
        return true;
    return false;

经过正则替换后:

if (a > b) 
    return true;
return false;

推荐js示例,不过别的语言也可以的

let spaceDetect = /([ ])+\S/
// string是输入的字符串
let string = "    if (a > b) \n        return true;\n    return false;"
// 计算非空白字符前有多少空格,但是会把\n这些算进去,可能会有小问题
let num = spaceDetect.exec(string)[0].length-1
// 通过num构建正则对象
let re = new RegExp("\n([ ]{"+num+"})","g")
// 将所有的\n后面num个空格替换为\n,同时还要去除第一行的空格
let result = string.replaceAll(re,"\n").slice(num)