正则表达式以大写字母分隔单词

时间:2020-04-22 15:25:35

标签: regex regex-lookarounds

可以请您帮忙表达正则表达式吗?

如果我有一个单词 backupIPAddress ,我需要将其拆分为备份IP地址 hasVPN => 具有VPN backupIpAddress => 备份IP地址

我尝试了以下表达式(?= \ p {Lu}),但这不是我所需要的。

1 个答案:

答案 0 :(得分:0)

您可以分步骤进行:

  1. 小写字母,大写字母,再小写字母。连续两次,以防万一。 pIp => p Ip

  2. 大写字母,大写字母,再小写字母。 PAd => P Ad

  3. 小写字母,后跟许多大写字母,后跟单词边界。 sVPN => s VPNpIP => p IP

var splitCapitals = s =>
  s
  .replace(/([a-z])([A-Z][a-z])/g, "$1 $2")
  .replace(/([a-z])([A-Z][a-z])/g, "$1 $2")
  .replace(/([A-Z])([A-Z][a-z])/g, "$1 $2")
  .replace(/([a-z])([A-Z]+)\b/g, "$1 $2")
;
console.log(splitCapitals("hasVPN"));
console.log(splitCapitals("backupIpAddress"));
console.log(splitCapitals("backupIPAddress"));

相关问题