1

次のような多項式のすべての項を検出したい

x^2+3x-2

文字列を「+」と「-」で部分文字列に分割したい。つまり、用語を分けて持ちたいのです。簡単にするために、文字列の先頭に「+」または「-」を追加します (まだ存在しない場合)。

+x^2+3x-2

ここで、すべての用語を個別に検出できる正規表現が必要です。また、できるだけ多くの用語が存在する可能性があることも覚えておく必要があります。

私は何かを試しました

[+-]?(.+?)

しかし、私は正規表現に慣れていないので、それを機能させることは私の能力の範囲内ではないと思います。

あなたの助けが必要です。この場合、望ましい結果は次のとおりであることに注意してください。

  1. +x^2
  2. +3倍
  3. -2

前もって感謝します!

4

2 に答える 2

4

ジョセフの答えが示すように、正規表現はあなたが述べた限られた仕事をすることができます。

しかし、より複雑な式を処理したい場合は、正規表現ではうまくいきません。検討

x^(-2)+3x-2

または次のような展開されていない式

x^2+3(x-2)-2

これらにはパーサーが必要です。正規表現との比較を参照してください。文字列の解析

于 2013-08-09T02:14:03.983 に答える
3

この正規表現を試してください:

/[+-]?[^+-]+/g

簡単な説明は次のとおりです。

[+-]?   // Optionally find either a + or a -
[^+-]+  // Find as many non-plus-or-minus characters as possible

ここで実際に見てください:http://regex101.com/r/qA6nS0

于 2013-08-09T01:57:06.200 に答える