Javascript 正则表达式 - 匹配单词中间的 capital/upperacase 个字母(在一个句子中)?

Javascript Regex - match capital/upperacase letter in a middle of a word (in a sentence)?

我只需要匹配位于单词中间的所有大写字母。例如 RegExr 将匹配字母 EsomeThings 对应字母 T。 如果大写字母以单词的开头开头,则不应匹配。

这个正则表达式几乎匹配它,但它实际上匹配大写字母旁边的小写字母。

/[a-z][A-Z]/g

例如单词RegExr,它匹配gE,但我只需要匹配E

更新

更新标题以指定此案例发生在一个句子中,而不是单个单词中。

应该这样做:

/\B[A-Z]\B/g

使用 \B 作为单词边界

有关测试和说明,请参阅 here

您可以在此处使用非单词边界。单词字符(\w)是字母[a-zA-Z]、数字[0-9]和下划线_.

通过使用 \B[A-Z]\B,您可以匹配单词中的每个大写字母。这也将匹配:

  • 9Gag
  • _H_ello

使用RegExp.prototype.exec()函数的解决方案:

var str = 'RegExr someTextBetween JavaScript',
    matched = [],
    re = /[^A-Z\s]([A-Z])[^A-Z\s]/g;
    
while ((m = re.exec(str)) !== null) {
    matched.push(m[1]);
}
console.log(matched);