Javascript 正则表达式 - 匹配单词中间的 capital/upperacase 个字母(在一个句子中)?
Javascript Regex - match capital/upperacase letter in a middle of a word (in a sentence)?
我只需要匹配位于单词中间的所有大写字母。例如 RegExr
将匹配字母 E
。 someThings
对应字母 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);
我只需要匹配位于单词中间的所有大写字母。例如 RegExr
将匹配字母 E
。 someThings
对应字母 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);