我只想为正好3个字母的单词创建一个正则表达式,以逗号分隔。 3个字母单词可以用空格填充(每边最多1个)
有效示例:
ORD
JFK, LAX
ABC,DEF, GHK,REW, ASD
无效的示例:
ORDA
OR
ORD,
JFK, LA
我尝试了以下操作,但无法正常工作。
^(?:[A-Z ]+,)*[A-Z ]{3} +$
答案 0 :(得分:0)
尝试以下模式:
^[A-Z]{3}(?:[ ]?,[ ]?[A-Z]{3})*$
此模式与最初的三个字母单词匹配,后面再与两个词相匹配,并用逗号隔开,并带有可选的空格。
答案 1 :(得分:0)
尝试以下操作:^([ ]?[A-Z]{3}[ ]?,)*([ ]?[A-Z]{3}[ ]?)+$
https://regex101.com/r/HFeN0D/2/
它匹配至少一个三个字母的单词(带空格),其后跟任意数量的单词,三个字母的单词后跟逗号。
答案 2 :(得分:0)
您可以使用以下模式进行操作:^((:? ?[A-Z]{3} ?,)*(?: ?[A-Z]{3} ?))+$
var str = `ORD
JFK, LAX
ABC,DEF, GHK,REW, ASD
ORDA
OR
ORD,
JFK, LA`;
let result = str.match(/^((:? ?[A-Z]{3} ?,)*(?: ?[A-Z]{3} ?))+$/gm);
document.getElementById('match').innerHTML = result.join('<br>');
<p id="match"></p>