Dart - 通过 RegEx 拆分字符串
Dart - Split String by RegEx
我正在尝试像这样拆分字符串:
x^-5 - 3
进入这样的列表:
[x^-5, -, 3]
^ 之后的第一个减号必须与 x 在同一列表索引处,因为它只是负指数。但是,我希望其他不是任何指数的缺点在它们自己的索引中。
当按 - 拆分时,显然我的 x^-5 也被拆分为两个。
那么有什么方法可以使用 RegEx 或类似的东西来实现吗?
提前致谢
如果您使用 allMatches
而不是 split
,您可以使用这样的模式:
(?:\^\s*-|[^\-])+|-
- 我们匹配除
-
或 ^-
. 之外的任何内容的标记
- 如果我们到达
-
不是指数,我们单独匹配它,类似于拆分。
一些注意事项:
- 有类似的模式,这可能不是最高效的,但很短。
- 如果您匹配数学表达式,有很多地方可能出错(例如括号),正则表达式不是实现此目的的好方法。
- 这基本上就是 match to skip 技巧。
我正在尝试像这样拆分字符串:
x^-5 - 3
进入这样的列表:
[x^-5, -, 3]
^ 之后的第一个减号必须与 x 在同一列表索引处,因为它只是负指数。但是,我希望其他不是任何指数的缺点在它们自己的索引中。
当按 - 拆分时,显然我的 x^-5 也被拆分为两个。
那么有什么方法可以使用 RegEx 或类似的东西来实现吗?
提前致谢
如果您使用 allMatches
而不是 split
,您可以使用这样的模式:
(?:\^\s*-|[^\-])+|-
- 我们匹配除
-
或^-
. 之外的任何内容的标记
- 如果我们到达
-
不是指数,我们单独匹配它,类似于拆分。
一些注意事项:
- 有类似的模式,这可能不是最高效的,但很短。
- 如果您匹配数学表达式,有很多地方可能出错(例如括号),正则表达式不是实现此目的的好方法。
- 这基本上就是 match to skip 技巧。