如何只获取Material[amhere]
内的文字?
例如,来自......
PROD_RULE0001:WARNING: Metric[amhere] exceeded the UPPER WARNING limit[80.0]
...我只想要amhere
。
我试过了:
var strg = "WARNING: Material[amhere] exceeded the UPPER WARNING limit[80.0]";
var testRE = strg.match("Material\[(.*)\]");
alert(testRE[1]);
答案 0 :(得分:2)
strg.match(/Material\[(.*?)\]/);
? *之后让它变得懒惰,所以。事后并没有抓住一切。
答案 1 :(得分:1)
您可能希望使用其他方式;
var material="Material[";
var str="WARNING: Material[amhere] exceeded the UPPER WARNING limit[80.0]";
var n=str.indexOf(material);
var amhere=str.substring(n+material.length, str.length).split("]")[0];
答案 2 :(得分:0)
您的.*
表达式是贪婪的,因此会进入收尾]
,而不是将匹配到。
除了@Telémako的解决方案之外,另一种方法是通过说“匹配除]
之外的任何内容来使表达更严格。这也将解决问题。”
strg.match(/Material\[([^\]*)\]]/);