【发布时间】:2026-01-05 08:45:01
【问题描述】:
大家晚上好。
我的字符串:
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 和所有 2 后面也没有 x、+ 或 - .. 你也想匹配这些吗?你只是想要字符串中的第一个数字吗?
-
啊,抱歉回答晚了 :) @CrayonViolent 我想从这些函数中提取常量,它们后面没有“x^n”的数字。因为它们可以出现在任何地方,开始,中间或结尾,它们可以(!)在它们前面有一个'+'/'-'。如果是“+”,则不应该被捕获,但应该是“-”。在这些数字之后,也可以有一个“+”或“-”(很少见,但需要注意)。
-
@IgorTandetnik 其他数字也可以是浮点数,因此它们也会被捕获(如果这是您的意思,不确定)。
标签: c++ regex c++11 ecmascript-5