晚上好大家。
我的弦:
4x^2+1.5-x
4x^2-x+1.5
1.5+4x^2-x
我想捕获这些方程的一部分,后面没有“x”或前面没有 +/- 的其他符号(1.5)。我试过这个正则表达式:
[^\^](\d+(\.\d+)?)(?!x)
它匹配搜索到的部分,但有一个问题:匹配包含前导 +/-。我以为我可以通过后视来解决这个问题,但是由于我使用带有 ECMAScript 的 C++11 库,因此不支持此操作。
有人知道如何解决这个问题吗?
谢谢 :)
晚上好大家。
我的弦:
4x^2+1.5-x
4x^2-x+1.5
1.5+4x^2-x
我想捕获这些方程的一部分,后面没有“x”或前面没有 +/- 的其他符号(1.5)。我试过这个正则表达式:
[^\^](\d+(\.\d+)?)(?!x)
它匹配搜索到的部分,但有一个问题:匹配包含前导 +/-。我以为我可以通过后视来解决这个问题,但是由于我使用带有 ECMAScript 的 C++11 库,因此不支持此操作。
有人知道如何解决这个问题吗?
谢谢 :)
根据更多评论重写。
好的,根据您评论中提供的其他标准和说明:
-
)(?:[-+]|^)[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
)
)