I#m doing this with
Code:
s: ([a-zA-Z])</p>\s*<p>
r: \1##
o: minimal matching
The reason for the two #: its more easy to find out if a word is splitted or the sentence is splitted between two words.
Now i'm looking for a lower case letter, followed by ##, followed by an uppercase letter. This is for sure a sign for two seperate words.
Code:
s: ([a-z])##([A-Z])
r: \1_\2
o: minimal matching, match case
(the underscore represents a blank)
Now i'm going thru looking for two separate words:
Code:
s: ([a-zA-Z])##([a-zA-Z])
r: \1_\2
o: minimal matching, match
If the ## is between two words, i press alt-r (replace), otherwise its a splitted word and i'm skipping this with alt-f (find next)
At the end only the ## splitting a word are remaining and i'm substituting them with
Code:
s: ([a-zA-Z])##([a-zA-Z])
r: \1\2
o: minimal matching
Last step is searching for a comma, question mark or exlamation mark:
Code:
s: ([,?!])</p>\s*<p>
r: \1_
o: minimal matching
More steps then yours, but i'm replacing the text without changing it manually which can be really annoying.