正则表达式模式力与条件而不是其他条件匹配

问题描述 投票:0回答:1

我正在努力强迫符合以下条件:

  • 如果以1,2,3个数字结尾+ 1个空格+ 1个字母。
  • 如果模式在字符串中间匹配,请忽略它。

输入:

ME001000 RV 2 B

ME001000 G 10 B

ME001000 RE 321 B

MP260000 EQTE 1 A

EL008002P TR 06 A 1 NOT匹配,因为它在字符串的中间

正则表达式模式:([0-9]{1} [A-Z]{1}|[0-9]{2} [A-Z]{1}|[0-9]{3} [A-Z]{1})+(?:[0-9]{2} [A-Z]{1}\s)

  1. Part:([0-9]{1} [A-Z]{1}|[0-9]{2} [A-Z]{1}|[0-9]{3} [A-Z]{1}):正确匹配,但也与“ 06 A”(最后一个字符串的中间)匹配

  2. Part:+(?:[0-9]{2} [A-Z]{1}\s):为了强制不匹配

我需要做什么以强制不匹配?

regex string match regex-negation
1个回答
0
投票

/\d{1,3}\s[A-Z]$/gm似乎很直接。匹配1-3位数字,然后在EOL处加上一个空格和一个大写字母。

const s = `
ME001000    RV         2 B
ME001000     G        10 B
ME001000    RE       321 B
MP260000  EQTE         1 A
EL008002P    TR 06 A         1
`;

console.log([...s.matchAll(/\d{1,3}\s[A-Z]$/gm)]);
© www.soinside.com 2019 - 2024. All rights reserved.