Replace numbers from position 20 to 30 in the middel af a line.
-
I have a file with 10000+ lines - I know the alt+mouse to mark text in the middle of the lines, but with 10000+ lines it is difficult to concentrate to the bottom… :-)
Can I use regular expressions or maybe a plugin to replace all number from position 20-30 in each line to 0000000000
The represent a amount which is different in every line.
Example file:
777777777777777777770000052500-020161207
888888888888888888880000013798-020161208
999999999999999999990000175131-020131209My wish :-)
777777777777777777770000000000-020161207
888888888888888888880000000000-020161208
999999999999999999990000000000-020131209 -
Based on your example, I assume you mean positions 21-30: i.e., keep 1-20, replace 21-30, keep anything else
Find: ^(.{20}).{10} Replace: (\1)0000000000
The parentheses in the Replace string are for readability, and could have been written as
Replace: \10000000000
[ UPDATE: Make sure “Regular Expression” is selected. :-) ]
Explanation: Find
^ = start of string (.{20}) = match the first twenty characters, and store them in \1 (. matches any character) .{10} = match the next 10 characters, and don't store them (They won't be part of the ending string
Explanation: Replace
(\1) = recall the \1 from the match, and put the characters there 0000000000 = put 10 raw 0s in the text
The rest of the line, which isn’t part of the match, will stay as-is.
-
Thank you very much, just what I needed… :-) :-)
I have just changes 20924 lines in no time…
-
Hello , Tino and Peter,
Congratulations to you, both ! Tino, for nicely exposing your wish and Peter for your full explanation, about the proposed regex :-)
An other S/R, using the
\K
syntax, could be :Find what :
^.{20}\K.{10}
Replace with :
0000000000
Notes :
-
As soon as the first twenty characters of the current line are matched, the
\K
feature forces the regex engine to forget anything previously matched and reset the regex engine position ! -
So the final match is, only, the ten characters, located between the columns 21 and 30
-
… which is, simply, changed into the 0000000000 string :-)
Remark :
- You must use the Replace All button, only. The step by step replacement, with the Replace button, does NOT work, when the search regex contains a
\K
form !
Best regards,
guy038
-