16982


JavaScriptで出力フォームからイコールを含むものが複数行あり、マッチした最後だけ取り出したいのですが、正規表現一行でできる方法はありますか？以下の方法以外に色々試しましたがうまくいきません。

以下の文字列がtextareaに入っている。\nで改行された3行。イコールの間はスペースがある：  
aaa = 3.14  
bbb = 2.18  
ccc = 1.0e+3

textareaのHTMLでのidはoutput_logなので、そこからテキストを取得してからマッチさせる。

試した方法：  
`var output_form = document.getElementById("output_log");`  
`var get_result = output_form.value.match(/.*\n.* = .*$/)`

→get_resultはnullなので、配列から指定して取り出すことができない。

欲しいのは最後の行の「1.0e+3」の部分だけ。


CC BY-SA 3.0
2015-09-26T17:16:28.880
16972
2015-09-27T01:19:33.347
5835
question
javascript 正規表現
正規表現で複数行のテキストから最後のイコールから文字を取り出す方法


改行を含む複数行でのマッチの場合は`m`フラグを使用します。  
あと、マッチさせるのが目的でなくて最後の「1.0e+3」の部分なのですから`( )`でその部分をくくって部分マッチ部分を取りだします。  
例えば以下の様にします。

[code]

    var output_form = document.getElementById("output_log");
    var re = /^(.*\n)*.+ = (.+)$/m;
    
    var get_result = "";
    if(re.test(output_form.value)){//マッチのテスト
        get_result = RegExp.$2;//$2は、マッチしたカッコの二つ目
    }
    
[/code]


CC BY-SA 3.0
2015-09-26T18:10:23.780
16975
2015-09-26T18:10:23.780
5044
16972
answer


最後の行の=以降が取得したいのなら、特に\nを意識しなくていいと思います。

[code]

    var output_form = document.getElementById("output_log");
    var get_result = output_form.value.match(/([^ =]+)$/)[1];
    
[/code]


CC BY-SA 3.0
2015-09-27T01:19:33.347
16982
2015-09-27T01:19:33.347
4106
16972
answer