Reputation: 1887
I have the following txt file:
VIII. LOCATIONS: OLA Handbook 1300.8, OPEN ARMS
OLA Handbook 1300.21, BIG BROTHER
9. RESTAURANTS: ARBYS 22RX-60-81, same subject, dated March 20, 2018.
But I want to match anywhere with OLA Handbook and the numbers after it. But also be under the Locations section (so text after LOCATIONS:
)
For example expected output would be: How can i do this in regex?
OLA Handbook 1300.8
OLA Handbook 1300.21
SO far I've only done
(?=LOCATIONS).*$
But I'm confused how to proceed.
I'm using https://regex101.com/ to test my string and the txt file is from notepad ++.
Upvotes: 0
Views: 73
Reputation: 430
Did you try this exhausted code?
Find: (ola.*\d)|.?
Replace all: $1
Upvotes: 0
Reputation: 163217
In notepad++ you can make use of the \G
anchor to get continuous matches.
(?s)(?:\bLOCATIONS:|\G(?!^)).*?\b\KOLA\s+Handbook\s+\d+(?:\.\d+)\b
In parts, the pattern matches:
(?s)
Inline modifier, dot matches newline(?:
Non capture group
\bLOCATIONS:
Match literally, preceded by a word boundary to prevent a partial match|
Or\G(?!^)
Assert the position at the end of the previous match, not at that start)
Close non capture group.*?
Match as least as possible chars\b\K
A word boundary, then use \K
to clear the current match buffer (forget what is matched until now)OLA\s+Handbook\s+
Match the text, where \s+
matches 1 or more whitespace chars\d+(?:\.\d+)\b
Match 1+ digits and an optional decimal part and a word boundaryUpvotes: 1