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