Regex find/replace EOL except if..
-
Hello all,
I have a text file that was a save as text doc from word. The main content is a multi level bulleted list. However some of the bullets were wrapped to the next line and these were converted to a \r\n. I am trying to do a search and replace for the EOL that is not followed by a word char, period, and space.
Example:This line was continued to[find this \r\n] a new line, but is actually part of the line above.[NOT this \r\n] 1. but this line should correctly be on a new line.[find this \r\n] [empty line] A. and this one should as well[find this \r\n] however this line should be concatenated onto the previous line.[NOT this \r\n] 5. New line that references 1. so cannot just remove all and replace.[find this \r\n]
If I use \r\n(?<=\w.\s) the pattern is not found.
\r\n(?<!\w.\s) finds the new line at the end of each line not matter what the start of the next line is. I have been through every iteration I can think of and have used online regex testers Regex101 and regex storm. All to no avail.
Any tips?Mon
-
Thank you for supply the data in a text box, and showing us what you already tried.
\r\n(?<!\w.\s)
You were oh so close! You made it a negative lookbehind. You wanted a negative lookahead. And
.
has special meaning, so you need to escape it to match a literal period character. Hence, use\r\n(?!\w\.\s)
If I do that as the FIND, and replace with empty, I get
This line was continued to[find this \r\n]a new line, but is actually part of the line above.[NOT this \r\n] 1. but this line should correctly be on a new line.[find this \r\n][empty line] A. and this one should as well[find this \r\n]however this line should be concatenated onto the previous line.[NOT this \r\n] 5. New line that references 1. so cannot just remove all and replace.[find this \r\n]
which I believe is what you want.
-
@peterjones thank you yes exactly what I was looking for. I did have the period escaped, but was not clear about the positive/negative look ahead/behind. I didn’t RTFM close enough.