改写基于甚至更多评论。
好了,根据您的意见所提供的附加标准,并澄清:
- 提取号码没有“X^N”甩在身后。
- 他们可以出现在任何地方,在开始,在中间或结束
- 他们可以(!)在他们面前有一个'+'/' - '。如果它是'+',这不应该被捕获,但' - '应该。 (澄清:需要同时捕获,只是显示
-
)
- 这些数字后,可以有'+'或' - '(罕见的情况下,但需要注意)。
- (重申:不能使用负lookbehinds)
(?:[-+]|^)[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
)
)
你可能只是看看第一个子匹配,而不是整个匹配?那将只包括数字。 –
你能更具体地说明你实际上想要什么吗?其中几个4和所有这2个也没有x,+或 - 在他们后面。你是否也想要匹配那些?你只是想要在字符串中的第一个数字? –
啊,抱歉,迟到的答案:) @CrayonViolent我想从这些函数中提取常量,数字后面没有'x^n'。因为它们可以出现在任何地方,在开始,中间或结束时,它们可以(!)在它们前面有一个“+”/“ - ”。如果它是'+',这不应该被捕获,但' - '应该。在这些数字之后,可以有'+'或' - '(罕见情况,但需要注意)。 –