【问题标题】:parse selected text to string ignoring chars [duplicate]将所选文本解析为忽略字符的字符串[重复]
【发布时间】:2015-07-02 21:11:48
【问题描述】:

我正在使用可以等于 123t 的 selected.text,并且我想只使用 123 并将其插入 stringselected.text 也可以简单地等于 54 或 256,但偶尔会有一个字母。我不确定要选择或解析哪个来删除字母。当我在 SE 上看到类似的问题时,我试图做一些像这样令人费解的事情,

string cat;
   int dog;        
   cat = txtFrame.Text;
   dog = int.Parse(cat.Substring(cat.IndexOf("")));
   Frame = dog.ToString();

Frame 是我希望它结束​​的字符串。

【问题讨论】:

  • 请说明数字是否总是连续的,或者您是否有字母与数字混合
  • @Steve 数字总是在前,但数字的长度可以是 2-3,字母也可以改变长度

标签: c# winforms


【解决方案1】:

这可能最好使用正则表达式

string test = "123t";
Match m = Regex.Match(test, @"\d+");
Console.WriteLine(m.Value);

如果您的字符串中可能存在最终符号,那么您可以使用模式的扩展形式

 Regex.Match(test, @"[-+]?\d+")

【讨论】:

  • 只是出于兴趣...您的答案是否保留 +/- 符号...不确定 \d ...可以查一下,但最好获得专家的意见;0)
  • 不,d+ 只匹配数字。 Regex.Match(test, @"[-+]?\d+") 保留最终符号
  • 酷。我更喜欢你的回答:0)
【解决方案2】:

来自以下帖子...

How do you remove all the alphabetic characters from a string?

Regex.Replace(s, "[^0-9.+-]", "")

@Steve 的回答更好!

这是 RegEx 的一个很好的资源...http://www.regular-expressions.info/

【讨论】:

  • 这只是删除所有字母字符?如果是这样的话听起来恰到好处
猜你喜欢
  • 1970-01-01
  • 2013-07-28
  • 1970-01-01
  • 1970-01-01
  • 2011-10-10
  • 2013-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多