c# - 解析字符串 C#(可能使用正则表达式)

标签 c# regex string parsing

我正在尝试解析一行代码以进行数学运算。

如:4+18/(9-3)

我希望这些部分为:4、+、18、/、(、9、-、3 和 )。 基本上,所有数字、运算符和括号。

如果我将 split 与分隔符一起使用,它会在找到分隔符时将其删除。因此,如果我使用运算符作为分隔符,那么它们就会被删除。

我尝试使用 Regex.split,它包含运算符,但不是我想要的方式。它会产生类似 4+ 的结果,因为它包括 4 和加号。

这是我一直在尝试的:

        string convert = "4+8/(9-3)";

        string[] parts = Regex.Split(convert, @"(?<=[-+*/])");

最佳答案

根据我的评论,如果您打算使用它来评估数学表达式,则不应使用正则表达式,因为您无法对正在解析的字符串有任何语法或语义理解。

如果您不打算这样做,这应该可以正常工作

([\d\.]+|[()e^/%x*+-])

Regexr example

Dotnetfiddle example

关于c# - 解析字符串 C#(可能使用正则表达式),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49593497/

相关文章:

C#:数据表线程安全问题

c# - 使用数据库组织工作的最佳方式

python - 正则表达式:连续匹配失败

java - 对字符串数组执行乘法操作

C++ Anagram Maker 错误

c# - 没有对 Task 的引用会导致内存泄漏吗?

c# - 在不同的CPU内核上执行上下文切换和线程

正则表达式匹配文件名中的字符串,同时排除另一个字符串

sql - 正则表达式:获取 AWS Redshift 中两个字符串之间的值

java - 在Java数组列表中连接字符串