0

みなさんこんばんは。

私の弦:

4x^2+1.5-x
4x^2-x+1.5
1.5+4x^2-x

これらの方程式の一部を、後ろに「x」を付けたり、前に +/- 以外の記号 (1.5) を付けたりせずにキャプチャしたいと考えています。この正規表現を試しました:

[^\^](\d+(\.\d+)?)(?!x)

検索された部分に一致しますが、問題があります。一致には先頭の +/- が含まれます。これは後読みで解決できると思っていましたが、ECMAScript で C++11 ライブラリを使用しているため、これはサポートされていません。

誰かがこれを解決する方法を知っていますか?

ありがとうございました :)

4

1 に答える 1

0

さらに多くのコメントに基づいて書き直されました。

さて、あなたのコメントで提供された追加の基準と説明に基づいて:

  • 後ろに「x^n」がない数字を抽出します。
  • それらは、最初、途中、または最後に、どこにでも表示できます
  • それらは (!) 前に「+」/「-」を持つことができます。「+」の場合はキャプチャされませんが、「-」の場合はキャプチャされます。(明確化:両方をキャプチャする必要があり、SHOWのみ-
  • これらの数字の後に、'+' または '-' もある場合があります (まれなケースですが、注意する必要があります)。
  • (繰り返し: 否定後読みは使用できません)

(?:[-+]|^)[0-9.]+(?=[-+]|$)

これは次のものに一致します (ここで書式設定して強調表示する良い方法がないため、一致を でラップしました[])。

4x^2[+8.15]-x
4x^2-x[+1.25]
[1.9]+4x^2-x
[3]+2x^4-x
x[-6]
[.7]+3x
[-.75]+3x
4x[-0.5]
4x[+0.8]
77x
9.8x
-2.52x^3-4x^2[+1.45]
4x^2[+8.15][-1.5]

先頭を削除する必要があります+

Array
(
    [0] => Array
        (
            [0] => +8.15
            [1] => +1.25
            [2] => 1.9
            [3] => 3
            [4] => -6
            [5] => .7
            [6] => -.75
            [7] => -0.5
            [8] => +0.8
            [9] => +1.45
            [10] => +8.15
            [11] => -1.5
        )
)
于 2013-11-01T14:05:43.320 に答える