用多个大写字母分割文本

Ale*_*shy 1 regex

我正在尝试拆分这些文本,知道一个单词至少有两个字母。

SAMAndMAX // SAM And MAX
SAMAndMax // SAM And Max
SamAndMax // Sam And Max
SamAndMAX // Sam And MAX
Run Code Online (Sandbox Code Playgroud)

我试过这样做(?=[A-Z][a-z]),但你看不到它不能正常工作。

SAMAndMAX // SAM And MAX
SAMAndMax // SAM And Max
SamAndMax // Sam And Max
SamAndMAX // Sam And MAX
Run Code Online (Sandbox Code Playgroud)

我似乎无法弄清楚......知道我做错了什么吗?

The*_*ird 6

示例数据的一种选择是使用带有正后视的交替 |来断言字符 az,并使用正前瞻来断言字符 AZ

请参阅此链接https://caniuse.com/#feat=js-regexp-lookbehind,了解lookbehinds 的可用性。

(?=[A-Z][a-z])|(?<=[a-z])(?=[A-Z])
Run Code Online (Sandbox Code Playgroud)

(?=[A-Z][a-z])|(?<=[a-z])(?=[A-Z])
Run Code Online (Sandbox Code Playgroud)