I have a file that I need to reformat and remove "extra" blank lines.
I am using the Perl syntax regular expression search and replace functionality of UltraEdit and need the regular expression to put in the "Find What:" field.
Here is a sample of the file I need to re-format.
All current text REPLACE with all the following: Winter 2011 Class Schedule Winter 2011 Class Registration Dates: Dec. 6, 2010 – Jan. 1, 2011 Winter 2011 Class Session Dates: Jan. 5 – Feb. 12, 2011 DANCE Adventures in Ballet & Tap 3 – 6 years Instructor: Ann Newby Tots ages 3 – 6 years old develop a greater sense of rhythm, flexibility and coordination as they explore the basic elements of movement. Saturdays 9 - 10 a.m. Jan. 8 – Feb. 12 Six-week fees: $30 African Storytelling 3 – 6 years Instructor: Ann Newby Tots ages 3 – 6 years old explore storytelling and fables through spoken word, music, movement and visual arts experiences. Saturdays 10 – 11 a.m. Jan. 8 – Feb. 12 Six-week fee: $30 African Dance / Children
You'll notice that some of the double blank lines have spaces or tabs or both in them.
After the search and replace has been run I should have a file that looks like this.
All current text REPLACE with all the following: Winter 2011 Class Schedule Winter 2011 Class Registration Dates: Dec. 6, 2010 – Jan. 1, 2011 Winter 2011 Class Session Dates: Jan. 5 – Feb. 12, 2011 DANCE Adventures in Ballet & Tap 3 – 6 years Instructor: Ann Newby Tots ages 3 – 6 years old develop a greater sense of rhythm, flexibility and coordination as they explore the basic elements of movement. Saturdays 9 - 10 a.m. Jan. 8 – Feb. 12 Six-week fees: $30 African Storytelling 3 – 6 years Instructor: Ann Newby Tots ages 3 – 6 years old explore storytelling and fables through spoken word, music, movement and visual arts experiences. Saturdays 10 – 11 a.m. Jan. 8 – Feb. 12 Six-week fee: $30 African Dance / Children
Should also work with spaces on blank lines
On my Intellij IDE what was search for
\n\n
and Replace it by\n
See this thread for what's causing the problem. As I understand it, UltraEdit regexes are greedy at the character level (i.e., within a line), but non-greedy at the line level (roughly speaking). I don't have access to UE, but I would try writing the regex so it has to match something concrete after the last blank line. For example:
This matches and captures two or more instances of a line separator and any horizontal whitespace that follows it, but it only retains the last one. The
\S
should force it to keep matching until it finds a line with at least one non-whitespace character.I admit that I don't have a whole lot of confidence in this solution; UltraEdit's regex support is crippled by its line-based architecture. If you want an editor that does regexes right, and you don't want to learn a whole new regex syntax (like vim's), get EditPadPro.
It depends what the line endings are. Assuming \n, replace this:
with
\n\n
.