我需要匹配所有大写字母,只要它们位于单词的中间位置。例如,RegExr
符合字母E
。字母someThings
T
。
如果大写字母从单词的开头开始则不应该匹配。
这个正则表达式几乎匹配它,但它实际上匹配大写字母旁边的小写字母。
/[a-z][A-Z]/g
例如,对于单词RegExr
,它与gE
匹配,但我只需匹配E
。
更新
更新标题以指定此案例发生在一个句子中,而不是单个单词。
答案 0 :(得分:3)
您可以在此处使用非字边界。单词字符(\w
)是字母[a-zA-Z]
,数字[0-9]
和下划线_
。
通过使用\B[A-Z]\B
,您可以匹配单词内的每个大写字母。这也将匹配:
9Gag
_H_ello
答案 1 :(得分:0)
答案 2 :(得分:0)
使用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);