C#从字符串末尾修剪字符

时间:2015-06-12 11:18:50

标签: c#

我有这个字符串

  

“1.3.1。\ t生产和销售分析:”

我想从字符串的开头和结尾修剪数字和转义序列。

输出应为:

  

“生产和销售分析:”

我的代码:

Char[] trimArray = new Char[] {'0','1','2','3','4','5','6','7','8','9','.',',',':','\\','/'};
        String test = "1.3.1.\tProduction and Sales Analysis:";
        test = test.TrimEnd(trimArray);
  

但问题是当 23232-232123-asd-323 这样的字符串出现时它也删除了数字

     

我想从字符串的开头和结尾删除不需要的字符想保留字符串 23232-232123-asd-323或手机号码

感谢。

3 个答案:

答案 0 :(得分:0)

中间总是'\ t'吗? 您可以尝试按'\ t'分割并修剪结束。

sudo apt-get install php5-gd

如果冒号总是在你想要的结尾,你可以再次拆分;)

答案 1 :(得分:0)

如果有一些共同点将坏数字和好的数字分开,比如说“t”,那么如何找到公共字母/符号的索引然后创建后面的所有内容的子字符串。例如:

String test = "1.3.1.\tProduction and Sales Analysis:";

index = test.LastIndexOfAny(new char[] { 't' });
test = test.Substring(index +1);

这应该给你“生产和销售分析:”。你可以对“:”做同样的事情,除非你想要它之前的所有内容

int index = test.LastIndexOfAny(new char[] { ':' });
test = test.Substring(0, index);

答案 2 :(得分:0)

使用正则表达式:

using System.Text.RegularExpressions;

string input = "1.3.1.\tProduction and Sales Analysis:";
string rgx =  @"(?:[0-9.]+)*(?:\\[a-zA-Z])*([\w\s\.\:-_]+)(?:\\[a-zA-Z])*";
string result = Regex.Match(input, rgx).Groups[1].Value.TrimStart();