神棍 list.accumulate 提取文本中的数字
题意提取,字母前的1位数字
描述1
= List.Accumulate(Text.ToList("ABC123DCDER456EYU789R"),{{},""},(x,y)=> if (y="D" or y="E" or y="R") and x{1}<":" then {x{0}&{x{1}},y} else {x{0},y})
现在来执行一下:
条件1-1
if (y="D" or y="E" or y="R") and
条件1-2
x{1}<":"
满足条件1-1 和条件1-2 都满足执行 条件返回 true
then {x{0}&{x{1}},y} //将上一个y 移动到x{0}列表中
条件2(不满足条件1) 条件返回false
else {x{0},y}) //用当前的y替换上一次的y
第一次:
y="A" 不满足条件 条件1-1, x{1}="" 满足条件1-3,由于条件1-1 和条件1-2是且的关系,所以最后条件返回false 执行else {x{0},y})
第二次:
y="B" 不满足条件 条件1-1, x{1}="A" 满足条件1-3,由于条件1-1 和条件1-2是且的关系,所以最后条件返回false 执行else {x{0},y})
......
描述2
= List.Accumulate(Text.ToList("ABC123DCDER456EYU789R"),{{},""},(x,y)=> if x{1} <":" and List.Contains({"D","E","R"},y) then {x{0}&{x{1}},y} else {x{0},y})
描述3
=List.Accumulate(Text.ToList("kk123yy789tyh789kkk"),{{},""},(x,y)=>if x{1}<":" and x{1}<>"" and y >="A" then {x{0}&{x{1}},y} else {x{0},y})
收录@月亮菩提案例二个
自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)