[▲前のスレッド]

[8317] 正規表現で指数表記から小数点表記にして取りだしできますか 
2018/3/17 (土) 04:09:11 ろろ
Mozilla/5.0 (Android 6.0.1; Tablet; rv:51.0) Gecko/51.0 Firefox/51.0
指数表記 1.234E+2 4.321E+5
↓
123.4 432100
よろしくお願いします。


[8318] Re:正規表現で指数表記から小数点表記にして取りだしできますか 
2018/3/19 (月) 01:25:11 berryzplus
Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko
▼ ろろさん
> 指数表記 1.234E+2 4.321E+5
> ↓
> 123.4 432100
> よろしくお願いします。

sakuraの標準機能では不可能です。
マクロでなら実現できるかも知れません。

本家PERLの正規表現には/eオプションというのがあって、
パターンマッチした文字列を置換する際に、
置換文字列を式として扱う、という動作を指定できます。
http://www.kent-web.com/perl/chap7.html

PERLで書くと、こんな感じ。
(-?[0-9]*\.(?:[0-9]*))[Ee]([\+\-][0-9]+)
  ↓
$1 * ( 10 ** $2 )
 注: PERLの「**」はN乗を計算する演算子。

RubyとかJavascriptとかでも理屈は同じです。
Eの前と後を別々に取り出して乗算してやればよいです。


[8320] Re2:正規表現で指数表記から小数点表記にして取りだしできますか 
2018/3/19 (月) 22:27:48 ろろ
Mozilla/5.0 (Android 6.0.1; Tablet; rv:51.0) Gecko/51.0 Firefox/51.0
▼ berryzplusさん
ありがとうございます。
> Eの前と後を別々に取り出して乗算してやればよいです。
グループ化,gensubがわからなかったので,
awkのsplitで対応しました。
{
split($2, a, "E");split($3, b, "E");
print a[1] * ( 10 ** a[2] ) " " b[1] * ( 10 ** b[2] )
}

[▼次のスレッド]
INCM/CMT
Cyclamen v3.81