I\'ve got hundreds of files of the type linked here: http://pastebin.com/fGgLfZf8
But I want to remove all the comments that occupies more than one line eg.
<!--[*a-zA-Z\r\n]*-->
this one seems to only take multi-line comments in notepad++
Edit:
little mistake : spaces are a problem with this one.
You can try
<!--[\r\n]{1}[* a-zA-Z\r\n]*-->
This expression <!--.+?(?<=[\*\r\n])-->
matched the multi-line comments only in Notepad++ as well.
Next to the "Regular expression" selection in "Search Mode" there is a "matches newline" checkbox (according to @glatapoui it should be noted that this only works in Notepad++ v6, not in previous versions).
Another way to catch multi-line text is use the expression:
<!---([\S\s]+?)--->
\S+ matches all no-space symbols,
\s+ matches all space symbols (including \r \n \t).
It works for notepad++, maybe, otherwise too...
EDIT: At the first look I didn’t noticed that problem issue is catch and delete only multiline comments excluding monoline ones. I found method of two iterations. First we need to find and replace by nothing following text
<!—-(?:(?!.*—->)[\s\S]+?—->|)
That will catch all multiline comments and prefixes of monoline ones. Then we need is bring back the monoline prefixes, that we lost:
Find:
(.+—->)
Replace:
<!—-\1
It will fix monoline comments. Combination of “—->“ can not appear xml code otherwise end of comment.