如何更改删除多余符号和空格的文本框
本文关键字:空格 文本 符号 何更改 删除 多余 | 更新日期: 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*