My string being of the form:
\"as.asd.sd fdsfs. dfsd d.sdfsd. sdfsdf sd .COM\"
I only want to match against the last segment of whitespa
In a general case, you can match the last occurrence of any pattern using the following scheme:
pattern(?![\s\S]*pattern)
(?s)pattern(?!.*pattern)
pattern(?!(?s:.*)pattern)
where [\s\S]*
matches any zero or more chars as many as possible. (?s)
and (?s:.)
can be used with regex engines that support these constructs so as to use .
to match any chars.
In this case, rather than \s+(?![\s\S]*\s)
, you may use
\s+(?!\S*\s)
See the regex demo. Note the \s
and \S
are inverse classes, thus, it makes no sense using [\s\S]*
here, \S*
is enough.
Details:
\s+
- one or more whitespace chars(?!\S*\s)
- that are not immediately followed with any 0 or more non-whitespace chars and then a whitespace.