Jagged text, align column
- 
 Hello Notepad ++ Guru’s, I am trying to line up the versions numbers under Description to get a clean column. No amount of googling and reading has gotten me a solid solution. Seeing if anyone here has any ideas Thank you so much 
 -Dan 
- 
 @Daniel-Lysk said in Jagged text, align column: I am trying to line up the versions numbers under Description to get a clean column The “Description” column looks lined up to me. What specifically don’t you like about it? I see “VERSION” for some of the lines, not all and they all look aligned amongst themselves as well. Perhaps a before and after? Maybe also pasting the text in you next follow-up post in between sets of three backticks like so: ``` 
 Put your text here
 ```… or linking a sample file so we don’t have to type to get a file that looks like yours to experiment with. Cheers. 
- 
 @Michael-Vincent Thank you so much for your reply and help. See for example ACP5191 on the left. Has a version number of 19.045.004. I need that version to line up with ADS0130 version 9.0.1 for example… I need all those version numbers to line up alike in one column. I would like the version number line up like the Object for example, all down one column. I hope that makes sense. Ultimately all information will be deleted except for Object and it’s version number from the Description column. 
- 
 @Daniel-Lysk said in Jagged text, align column: Ultimately all information will be deleted except for Object and it’s version number from the Description column. Depending on the real data this find what: ^\s+([A-Z]+[[:alnum:]]+).+((?!VERSION|RELEASEID: ITI)\s\d+?\.\d+?\.\d+?)\s.*
 replace with:$1\t\t$2with Regular expression checked might do what you want. 
- 
 @Ekopalypse Holy Smokes! That was it! That gives me perfect results. I owe you a cup of coffee :-) Thank you so much! 
- 
 Hello @daniel-lysk, @michael-vincent, @ekopalyse and All, First, here is an other regex, may be less complicated, to achieve the @daniel-lysk ultimate goal : SEARCH (?-si)^\h+(\w+).+(RELEASEID: ITI|VERSION)(.+)\x20\d\d/.+REPLACE $1\t\t$3
 Now, I would like to develop the general regex way to line up the columns of a table : Let’s work with this sample table, below : ( the last record is from mime ! ) ACP5191 *PGM CBLLE 5120000 RELEASEID: ITI 19.045.004 06/12/15 14:12 ADS0130 *PGM CBLLE 3137536 VERSION 9.0.1 02/20/17 14:00 ADS0910 *PGM CBLLE 18124800 VERSION 10.1.5 02/11/20 00:38 GUY0000 *PGM CBLLE 123456789 RELEASEID: ITI 3.020.074 08/15/17 10:30It is obvious that the first four columns are lined up ! Now, It’s rather easy to locate the places where we have to insert spacecharacters :- 
Right after the strings RELEASEID: ITIandVERSION
- 
Right before the spacechar, followed by the date##/##/##
 So the following regex S/R searches for these two zero-length locations and add 10space for each :- 
SEARCH (?-i)(RELEASEID: ITI|VERSION)\K|(?=\x20\d\d/)
- 
REPLACE \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
 Remarks : - 
Of course, you may, instead, just hit ten times the Spacekey, in theReplace with:zone
- 
It’s always better to choose a fair amount of spacecharacters ! Further processes work whatever the number ofspacecharacters inserted
- 
You may, as well, run the regex S/R twice to get the insertion of 20space characters, in case the size of each value, in a specific column, is very variable !
 So, we get : ACP5191 *PGM CBLLE 5120000 RELEASEID: ITI 19.045.004 06/12/15 14:12 ADS0130 *PGM CBLLE 3137536 VERSION 9.0.1 02/20/17 14:00 ADS0910 *PGM CBLLE 18124800 VERSION 10.1.5 02/11/20 00:38 GUY0000 *PGM CBLLE 123456789 RELEASEID: ITI 3.020.074 08/15/17 10:30Now, by moving the caret right after the longest string RELEASEID: ITI, you’ll see, in the status bar, that the cursor is at column68Thus, we’ll use the following regex S/R to get the next Version Numbercolumn lined up :- 
SEARCH ^.{68}\K\x20+
- 
REPLACE Leave EMPTY
 => ACP5191 *PGM CBLLE 5120000 RELEASEID: ITI 19.045.004 06/12/15 14:12 ADS0130 *PGM CBLLE 3137536 VERSION 9.0.1 02/20/17 14:00 ADS0910 *PGM CBLLE 18124800 VERSION 10.1.5 02/11/20 00:38 GUY0000 *PGM CBLLE 123456789 RELEASEID: ITI 3.020.074 08/15/17 10:30Again, by moving the caret right after the first version number 19.045.004, you’ll see, in the status bar, that the cursor is at column79Thus, we’ll use the following regex S/R to get the next Date-Hourcolumn lined up :- 
SEARCH ^.{79}\K\x20+
- 
REPLACE Leave EMPTY
 => ACP5191 *PGM CBLLE 5120000 RELEASEID: ITI 19.045.004 06/12/15 14:12 ADS0130 *PGM CBLLE 3137536 VERSION 9.0.1 02/20/17 14:00 ADS0910 *PGM CBLLE 18124800 VERSION 10.1.5 02/11/20 00:38 GUY0000 *PGM CBLLE 123456789 RELEASEID: ITI 3.020.074 08/15/17 10:30Here we are ! Now, all the columns seem to be lined up ;-)) Note that you may also increase the column value, seen in the status bar, by nunits, to get a gap of morespacesbetween two columns !Best Regards, guy038 
- 
- 
 Hi @daniel-lysk, @michael-vincent, @ekopalyse and All, An other useful little trick : Let’s imagine that our previous table has the size file values left justified, as below : ACP5191 *PGM CBLLE 5120000 RELEASEID: ITI 19.045.004 06/12/15 14:12 ADS0130 *PGM CBLLE 3137536 VERSION 9.0.1 02/20/17 14:00 ADS0910 *PGM CBLLE 18124800 VERSION 10.1.5 02/11/20 00:38 GUY0000 *PGM CBLLE 123456789 RELEASEID: ITI 3.020.074 08/15/17 10:30Now, in order to get the same values right justified, move the caret right before the left-justified numbers and note its column number C, in the status bar. Then, use the numberC-1in the regex S/R, below :- 
SEARCH ^.{42}\K(\d+)(\x20+)(?=\x20)
- 
REPLACE \2\1
- 
Click on the Replace Allbutton
 And… voila ! Even, if you have 1,000,000records, it would have been the same !ACP5191 *PGM CBLLE 5120000 RELEASEID: ITI 19.045.004 06/12/15 14:12 ADS0130 *PGM CBLLE 3137536 VERSION 9.0.1 02/20/17 14:00 ADS0910 *PGM CBLLE 18124800 VERSION 10.1.5 02/11/20 00:38 GUY0000 *PGM CBLLE 123456789 RELEASEID: ITI 3.020.074 08/15/17 10:30
 Note that the regex S/R, below, does the opposite. It left-justifies the size files. So you get, again, the original file ! - 
SEARCH ^.{42}\K(\x20+)(\d+)(?=\x20)
- 
REPLACE \2\1
 Cheers, guy038 
- 


