我正在尝试编写一个正则表达式,只匹配字符串中只包含非大写字母的单词,但无法弄明白.
例
var str = "What a wonderful Sunday Afternoon";
Run Code Online (Sandbox Code Playgroud)
我设法匹配使用此正则表达式以大写字母开头的任何单词 var str1 = str.match(/[A-Z][a-z]+/g)
这里str1回来了[What, Sunday, Afternoon]
我现在想要做的是写一个返回a和的正则表达式wonderful.
为此,您不需要正则表达式。
只需在空格处拆分字符串,然后根据单词是否为小写来过滤数组。
var string = "What a wonderful Sunday Afternoon";
var lowerCaseWords = string.split(' ').filter(function(word) {
return word === word.toLowerCase();
});
console.log(lowerCaseWords);
// ["a", "wonderful"]Run Code Online (Sandbox Code Playgroud)
你可以使用这个正则表达式.
\b([a-z]+)\b
Run Code Online (Sandbox Code Playgroud)
演示:https://regex101.com/r/uQ6lT4/1
你现在的正则表达式 [A-Z][a-z]+
说一个大写字母然后是任何数量的小写字母.
没有[A-Z]你只是寻找所有小写字母,所以部分单词匹配.添加单词边界将确保值为一个单词(不包括带连字符的单词).