I have this expression
\\b[A-Za-z]+\\b
If I give abc@de mnop
, it matches abc
, de
and mnop
\b
is a word boundary.
So, \b
is similar to [^a-zA-Z0-9_]
i.e \b
would check for anything except word
You can instead use this regex
(?<=\s|^)[a-zA-Z]+(?=\s|$)
-------- --------- ------
| | |->match only if the pattern is followed by a space(\s) or end of string/line($)
| |->pattern
|->match only if the pattern is preceded by space(\s) or start of string\line(^)
\b
means (?:(?<!\w)(?=\w)|(?<=\w)(?!\w))
. Which would match positions between letters and @
.
You can write:
(?<!\S)[A-Za-z]+(?!\S)
(?!\S)
is equivalent to (?=\s|$)
.
Regex word boundary doen't match(\b) matching and whitespace
Only white in sample is
abc@de mnop
^
Try \s([A-Za-z]+)\b
where \s
is the anchor, not a boundry at all