正则表达式;不要匹配数字,除非后跟' /'

时间:2016-05-22 00:26:18

标签: javascript regex

我有这个字符串:{16}{2/W}{G/R}{W}。我使用javascript正则表达式来提取括号内容,但我想忽略任何仅限数字的括号,例如{16}。但是,我希望匹配具有数字和字母的括号,例如{2/W}。到目前为止,我有/{([^}0-9]+)}/g,其匹配{G/R}{W}就好了,并且根据我的要求排除了{16},但它并不匹配{{1} }}。有没有办法说不匹配数字,除非后跟非数字'?

2 个答案:

答案 0 :(得分:1)

您可以使用:



var string = "{16}{2/W}{G/R}{W}";

var result = string.match(/{(\d*[^}\d]+[^}]*)}/g)

console.log(result);




这将检查3种类型的匹配:

  • 根本没有数字(您的原始正则表达式)
  • 任何前导数字,后跟至少一个非数字,然后是结束'}'
  • 之外的任何内容
  • 没有前导数字,后跟任意数字的数字,然后除了结束之外的其他任何数字'}'

答案 1 :(得分:1)



var regExample = "{16}{2/W}{G/R}{W}";
var matches = regExample.match(/{([^}\d]+)\}|{(\d+\/\w+)}/g)
console.log(matches);