how do I split a string ONLY if capitalized letters are next to a word without spaces. so, only if 'aBa' but not if 'A B'
I want to split:
'John DoeJane DoeOther Doe'
into
['John Doe', 'Jane Doe', 'Other Doe']
I already know how to split just by capitalized letters, like on this issue right here. But I don't want to split for every capitalized letter and separate 'John' from 'Doe' or any of the others.
CodePudding user response:
Try this
const re = /[A-Z][a-z] \s[A-Z][a-z] /g;
const str = 'John DoeJane DoeOther Doe';
console.log(str.match(re));
Reference: Regular expressions
CodePudding user response:
You can split on matches of the regular expression
(?<=[a-z])(?=[A-Z])
(?<=[a-z]) is a positive lookbehind that requires the previous character to be a lowercase letter; (?=[A-Z]) is a positive lookahead that requires the following character to be an uppercase letter. For the string
'John DoeJane DoeOther Doe'
this matches the zero-width locations between 'e' and 'J' and between between 'e' and 'O'.
