【问题标题】:Regex.Split command in c#C# 中的 Regex.Split 命令
【发布时间】:2014-02-27 02:42:19
【问题描述】:

我正在尝试使用 Regex.SPlit 拆分字符串,以保留其所有内容,包括我使用的分隔符。字符串是一道数学题。例如,5+9/2*1-1。如果字符串包含 + 号,我可以正常工作,但我不知道如何在分隔符列表中添加一个以上。我在网上查看了多个页面,但我尝试的一切都给了我错误。这是我拥有的 Regex.Split 行的代码:(它适用于加号,现在我还需要它来执行 -、* 和 /。

string[] everything = Regex.Split(inputBox.Text, @"(\+)");

【问题讨论】:

    标签: c# regex string


    【解决方案1】:

    使用字符类来匹配任何数学运算:[*/+-]

    string input = "5+9/2*1-1";
    string pattern = @"([*/+-])";
    string[] result = Regex.Split(input, pattern);
    

    请注意,字符类允许范围,例如 [0-9],它匹配从 0 到 9 的任何数字。因此,为避免意外范围,您可以转义 - 或将其放在开头或结尾的字符类。

    【讨论】:

    • 这里不需要捕获组?
    • @hwnd 捕获组对于保留分隔符作为拆分结果的一部分是必要的,否则它们将被排除在外。我在这里有一个相关的答案:stackoverflow.com/a/2485044/59111
    • 我今晚有机会时会试试这个。很可能会奏效。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-22
    • 2021-12-19
    • 1970-01-01
    • 2020-05-29
    • 1970-01-01
    • 2018-10-14
    相关资源
    最近更新 更多