Slick way to remove line numbers from text
-
Perhaps you already have a way to do this, but I thought I’d share.
If you need to remove line numbers from program code or whatever, a slick and fast free utility is online at:
http://remove-line-numbers.ruurtjan.com/
Go there, paste your code and it strips all line numbers quickly and reliably.
-
Hello @kent-hartland,
Thanks for sharing this easy utility !
However, you can achieve it, quickly enough, using regular expressions, in search/replacement, within N++ ;-))
-
Open your file, in N++
-
Eventually, do a normal selection of the lines to be processed
-
Open the Replace dialog (
Ctrl + H
) -
Type in the regex
^\h*\d+
, in the Find what: zone -
Leave the Replace with: zone
EMPTY
-
If you did a selection, tick the
In selection
option. Otherwise, tick theWrap around
option -
Select the
Regular expression
search mode ( IMPORTANT ) -
Click on the
Replace All
button
Et voilà !
Note that this regex is, simply, an approximation of what that small utility does ! Indeed, this program :
-
Considers, only, the usual latin digits ( with Unicode value, from
\x{0030}
to\x{0039}
) as numbers to be deleted, instead of all Unicode numbers or similar, of any language ! -
Considers the first dot character (
.
), located right after a number, as a character to be deleted, too ! -
Considers all possible Unicode White space character ( except for the New Line character,
\x{0085}
) , between the End of Line characters of the previous line and the numbers, of the current one, as characters which have to be deleted , as well. Refer, for that topic, to :
http://www.unicode.org/Public/UCD/latest/ucd/PropList.txt
So, assuming you would add a line-break, at the very beginning of your file, an exact search regex could be :
(\r\n|\r|\n)\K[^\S\x85]*[0-9]+\.?
Just for information, this regex :
-
First, the part
(\r\n|\r|\n)
tries to match some End of line character(s) -
Then, the
\K
syntax reset the regex engine search process and position -
Now, the part
[^\S\x85]*
finds the longest sequence, possibly empty, of White Space characters, different of\x{0085}
-
After, the part
[0-9]+
simply looks for the longest non-empty range of classical digits -
Finally, the syntax
\.?
searches a possible literal dot
Remark :
The part
[^\S\x85]
is difficult enough to understand : this negative class of characters[^...]
represents a single character, which is DIFFERENT from, BOTH :-
Any Unicode NON-Space character (
\S
) -
The New Line character (
\x{0085}
)
Best Regards,
guy038
-