Rhodochrosite | Level 12

## Prxchange understanding

can someone help me understand this line?

`MAT_NBR= prxchange('s/^(0*)//', -1,NBR);`
1 ACCEPTED SOLUTION

Accepted Solutions
Quartz | Level 8

## Re: Prxchange understanding

Unless I am mistaken,

mat_nbr = remove the Matched Pattern in variable NBR , the value of times is –1, then matching patterns continue to be replaced until the end of source is reached.

Sequence: match all of the followings in order
BeginOfLine
CapturingGroup
GroupNumber:1
Repeat
0
zero or more times

=>>> remove Leading Zeros in the varible nbr

nbr = 0001 => mat_nbr=1

nbr= 001 01 => mat_nbr=1 01

2 REPLIES 2
Quartz | Level 8

## Re: Prxchange understanding

Unless I am mistaken,

mat_nbr = remove the Matched Pattern in variable NBR , the value of times is –1, then matching patterns continue to be replaced until the end of source is reached.

Sequence: match all of the followings in order
BeginOfLine
CapturingGroup
GroupNumber:1
Repeat
0
zero or more times

=>>> remove Leading Zeros in the varible nbr

nbr = 0001 => mat_nbr=1

nbr= 001 01 => mat_nbr=1 01

Opal | Level 21

## Re: Prxchange understanding

The function call removes leading zeros if starting at the first character. Is equivalent to prxchange("s/^0+//", 1, NBR). Note that prxchange("s/^\s*0+//", 1, NBR) would account for leading spaces.

PG
Discussion stats
• 2 replies
• 393 views
• 2 likes
• 3 in conversation