0

内部のテキストのみを取得するにはどうすればよい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]);
4

3 に答える 3

2
strg.match(/Material\[(.*?)\]/);

? * の後は怠け者になるので、 . 後ですべてをキャプチャするわけではありません。

于 2012-08-03T09:55:11.517 に答える
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];
于 2012-08-03T09:57:48.993 に答える
0

あなたの表現は貪欲で、締めくくりに合わせるのではなく.*、締めくくりに食い込んでいます。]

@Telémako の解決策に加えて、別の方法は、「 以外のすべてに一致する」と言って式をより厳密にすること]です。これも問題を解決します。

strg.match(/Material\[([^\]*)\]]/);
于 2012-08-03T09:59:26.763 に答える