I would like to find a string that starts and ends with a specific special character but skipping when another specific charachter.
I want to find any string that starts with "hello"and ends with a dot "." but not like "here end." this must be skipped when "here end" is preceding the dot ".".
Sample :
String para = "[email protected]. this will share the costs and hello you the initial here end. must be carrefully done.Keep going."
I tried the following regex but its not working:
hello. ?((?=([.]))
I got this :
"hello you the initial here end."
but this is required :
"hello you the initial here end. must be carrefully done."
CodePudding user response:
You can yse
hello.*?(?<!here end)\.
See the regex demo. Details:
hello
- a fixed string.*?
- any zero or more chars other than line break chars as few as possible(?<!here end)\.
- a.
that is not immediately preceded withhere end
.
If you need to exclude the .
from match, put it into a lookaround, hello.*?(?<!here end)(?=\.)
.