Mark all text who have word searched
- 
I have a text file like the folowing one:
#TEST Random TEXT | #TEST Random TEXT: Random TEXT special Random TEXT | #TEST Random TEXT: Random TEXT | #TEST Random TEXT: Random TEXT special Random TEXT Random TEXT Random TEXT Random TEXT |I want to mark text who contain this word “special”
The result can be :#TEST Random TEXT: Random TEXT special Random TEXT | #TEST Random TEXT: Random TEXT special Random TEXT Random TEXT Random TEXT Random TEXT |I trying to use this
^(#TEST).+?special+?\|$
but the result not correct - 
I think a clarification for those that want to help is:
You want to mark multiple lines of text that occur between single empty lines, that contain the text
special. - 
@alan-kilborn Thanks For your Reply ,
The text like you see is started by#and ended by|I need to mark all text who have the word
special - 
Hello, @elbriak-badr , @alan-kilborn and All,
So you need to mark any range of text beginning with a
#character, having the wordspecialin the next line and then mark all chars till the nearest|characterIn this case, the road map is :
- 
Open the Mark dialog (
Ctrl + M) - 
Find what :
(?-is)^#TEST.+\R.+special(?s).+?\| - 
Un-tick all options
 - 
Tick the
Bookmark line,Purge for each searchandWrap aroundoptions - 
Select the
Regular expressionsearch mode - 
Click on the
Mark Allbutton - 
Now, you can, either :
- 
Click on the
Copy Marked textbutton and paste the clipboard contents in a new tab - 
Choose the menu option
Search > Bookmark > Copy Bookmarked linesand paste the clipboard contents in a new tab 
 - 
 
Notes,
- 
The search is sensitive to case, due to the in-line modifier
-i( so, not insensitive ! ) - 
At beginning any
.matches a single standard char ( so, not the line-endings ) - 
After the word
special, the in-line modifier(?s)means that dot matches any character, including EOL ones 
Best Regards,
guy038
 - 
 - 
@guy038 Thanks a lot , it’s working for any range of text beginning with a
#character, having the wordspecialin the next line , but can you please help me to search for range of text having the wordspecialin any line ?#TEST Random TEXT | #TEST Random TEXT: Random TEXT special Random TEXT | #TEST Random TEXT: Random TEXT | #TEST Random TEXT: Random TEXT Random TEXT Random TEXT special Random TEXT Random TEXT | #TEST Random TEXT: Random TEXT Random TEXT special Random TEXT Random TEXT Random TEXT |Results
#TEST Random TEXT: Random TEXT special Random TEXT | #TEST Random TEXT: Random TEXT Random TEXT Random TEXT special Random TEXT Random TEXT | #TEST Random TEXT: Random TEXT Random TEXT special Random TEXT Random TEXT Random TEXT | - 
Hi, @elbriak-badr , @alan-kilborn and All,
Ah…, OK. In this case, we must use the
(?s)modifier for the entire regex.and the goal becomes :- 
A) To look for any range of text, between the string
#TEST, beginnning a line, till the nearest|character - 
B) This range must, of course, contains the word
special - 
C) The string
#TEST, itself, must never occur, after each#TESTstring till the wordspecial! 
Thus, the appropriate regex is :
SEARCH
(?s-i)^#TEST((?!#TEST).)+?special.+?\|
Notes :
- 
To achieve the C) condition, we use a negative look-ahead condition, meaning that the range of chars, after
#TEST, till the wordspecial, must not contain the#TESTstring, itself, at any position, thanks to this specific syntax((?!#TEST).)+? - 
The
-isyntax, at beginning of the regex, means that the search is sensitive to case ( so not insensitive ! ) If you need a search, whatever the case, change the part(?s-i)by(?si) 
Best Regards,
guy038
 - 
 - 
Very wonderful ,
Thanks a lot @guy038 ,
that make me love notepad++ more !!I am grateful for your support.