如何更改删除多余符号和空格的文本框

本文关键字:空格 文本 符号 何更改 删除 多余 | 更新日期: 2023-09-27 18:25:00

目前我使用的代码是:

 private static void ArrayFixer(TextBox tb)
    {
        tb.Text = tb.Text.Trim();
        while (tb.Text.Contains("  ")) tb.Text = tb.Text.Replace("  ", " ");
        while (tb.Text.Contains("- ")) tb.Text = tb.Text.Replace("- ", "-");
        while (tb.Text.Contains("--")) tb.Text = tb.Text.Replace("--", "-");
    }

这很好,但如果输入是5- 4 -3- -4,结果将是5-4 -3-4我希望它像5 4 -3 -4

我叠在这条线上(看起来大错特错)

while (tb.Text.Contains(Convert.ToString(char.IsDigit(???) + "-")) //replace ("-"," ")

我的意思是,文本框变得几乎和我想要的一样:数字用" "分隔,差不多就是这样。我需要在字符串中避免使用5-3-

如何更改删除多余符号和空格的文本框

你在找这样的东西吗?它将从输入字符串中提取有效的整数。

var str = "5-   4  -3-  -4";
var matches = Regex.Matches(str, "-?[0-9]+");
var res = string.Join(" ", matches.Cast<Match>().Select(m => m.Value));

更新

要排除注释中提到的情况,您可以使用此regex

(?<='s|^)-?[1-9]'d+

更新2

该模式将匹配单词开头的所有正整数和负整数,如123someword=>123-1otherword=>-1,以及后面的零,如000234word=>234(仅为正)。

(?<=^|'s|'s0*)-?[1-9]'d*