Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正则表达式匹配行,所有单词以大写字母开头_Javascript_Regex - Fatal编程技术网

Javascript 正则表达式匹配行,所有单词以大写字母开头

Javascript 正则表达式匹配行,所有单词以大写字母开头,javascript,regex,Javascript,Regex,我正在尝试创建一个正则表达式模式(JavaScript),该模式匹配所有单词以大写字母开头的一行,而不考虑长度。它还必须考虑任意数量的等号('=') 例如 匹配项: ==这将匹配== ===我喜欢我的猫=== ===等号的数量无关紧要=== ======线路长度等也不适用===== 但是无论其长度如何,这都不会发生变化 这场比赛也不会进行=== 任何帮助都将不胜感激。请尝试以下正则表达式: ^=*[A-Z][^ ]*( [A-Z][^ ]*)*=*$ 它允许任意数量(包括0)的=符号出现在任意

我正在尝试创建一个正则表达式模式(JavaScript),该模式匹配所有单词以大写字母开头的一行,而不考虑长度。它还必须考虑任意数量的等号('=')

例如
匹配项:
==这将匹配==
===我喜欢我的猫===
===等号的数量无关紧要===
======线路长度等也不适用=====

但是无论其长度如何,这都不会发生变化 这场比赛也不会进行===

任何帮助都将不胜感激。

请尝试以下正则表达式:

^=*[A-Z][^ ]*( [A-Z][^ ]*)*=*$
它允许任意数量(包括0)的
=
符号出现在任意一侧,并要求每个单词以大写字母开头

*
量词表示0次或更多次

[^]
是一个否定字符类,意味着它匹配除空格以外的任何字符


您可以在线试用。

这符合您的期望结果:

var测试=[
“==这将匹配==”,
我喜欢我的猫,
“===等号的数量无关紧要==”,
“=======线路长度等也不相同=====”,
“==无论其长度如何,这都不会发生==”,
“==也不匹配,等等==”
]
var reg=/=*([A-Z]\w*\w*)+=*/g;

log(test.map(t=>t.match(reg)==t))
您可以在任意一侧匹配一个或多个等号,如
=+

要匹配以大写字母开头的单词,可以以
[a-Z]
开头,后跟
\w
一次或多次。如果要匹配比
\w
更多的字符,可以创建一个字符类
[\w.]
,例如添加匹配的点

此模式将在等号零次或多次之间匹配以大写字符后跟空格开头的单词,并以大写字符开头的单词结尾:

const字符串=[
“==这将匹配==”,
我喜欢我的猫,
“===等号的数量无关紧要==”,
“=======线路长度等也不相同=====”,
“==无论其长度如何,这都不会发生==”,
“===这也不匹配,etc==”,
“=aaaa=”
];
让模式=/^=+(?:[A-Z]\w*)*(?:[A-Z][\w.]+)=+$/;
strings.forEach((s)=>{
console.log(s+“==>”+pattern.test(s));

});将==此==匹配请显示您迄今为止尝试的内容