私は持っている:
s = '00755C100002';
取得しようとしています
m = '755C100';
最後の 3 桁と 1 つの最初の 0 を破棄することはできますが、すべての最初の 0 を破棄することはできません。
regexp(s,'(?!^0*)\w*(?=\d{3}$)','match','once')
ans =
'0755C100'
使ってみるといつも楽しいregexp:
regexp(s, '[^0]+?(\w*?)(?=\d{3}$)', 'match', 'once')
(?=\d{3}$)-->末尾(?= )の 3 桁をお楽しみに\d{3}$
[^0]+?--> 貪欲でない?1 つ以上の1非ゼロを見つけます[^0]
(\w*?)( )-->非貪欲な?0 個以上の*単語文字に一致\w
@ニックの答えよりも少し単純です最初のゼロ以外の文字を探して、そこから貪欲に続けることができます
regexp(s,'[^0]\w*(?=\d{3}$)','match','once')
[^0]最初の非ゼロ文字を見つけます(?=\d{3}$)最後の 3 桁をスキップします\w*間のすべてをキャプチャします