javascriptの正規表現の質問です。以下のようなときに、

点数<BR>の後ろの数字を配列にするにはどう書けばいいのでしょうか?

A 点数<BR>15.91
B 点数<BR>12.55
C 点数<BR>13.11
D 点数<BR>12.41
E 点数<BR>17.32
もっと続く↓

res = tokuten.match( /ここが知りたい/g );

変数(tokuten)の中には、他の数字もたくさん含まれているとします。
点数<BR>、とした後の数字を求めたいのです。(点数<BR>は含めなくていい)

よろしくお願いします。

回答の条件
  • 1人5回まで
  • 登録:2010/01/19 19:06:33
  • 終了:2010/01/20 13:07:41

回答(2件)

id:horonict No.1

horonict回答回数257ベストアンサー獲得回数512010/01/19 21:59:05

ポイント50pt

こんな感じでどうでしょう。

res = tokuten.match(/[0-9|\.]+/g);
id:tontonpokopoko

回答をありがとうございます。

変数の中には求めたくない数字もたくさんあって、

その方法だと全部がマッチしてしまうようです。

2010/01/20 11:06:59
id:Hidehisa No.2

Hidehisa回答回数24ベストアンサー獲得回数22010/01/20 01:36:13

ポイント90pt

後ろに改行が必ず入っているなら、

tokuten.match(/[\d.]+(?=\n)/g);

ですね。

後ろに「
」が入ってたら、

tokuten.match(/[\d.]+(?=
)/g);

でいけます。

本当は、

tokuten.match(/(?<=点数
)[\d.]+/g);

という表現が使えるといいのですが、JavaScriptでは使えないようです。

また、Firefoxではいけましたが、IEではこの正規表現は使えないようです。

id:tontonpokopoko

回答をありがとうございます。

上記の方法をFirefoxで試してみましたが、

なぜか改行部分が無視されて、すべての数字がマッチしてしまいました・・

仕方がないので、

tokuten.match(/点数
[\d.]+/g);

にして、まずは求めたい数字だけを抽出。

その後に再びtokuten.match(/[\d.]+/g);

として、数値を配列に入れました。

2度手間ですが、今後にゆっくり考えたいと思います。

回答をありがとうございます!

2010/01/20 13:04:10
  • id:horonict
    >変数の中には求めたくない数字もたくさんあって
    どんな数字が「求めたい」ものかルールを明示していただかないと、正規表現にすることはできません。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません