如何只返回带有符号,字母和当然数字的大字符串中的数字与C#

时间:2012-05-25 07:42:25

标签: c# regex digits

我在这里有这个代码,我需要返回 args.Content (我的输入数据)只有数字并删除其余的characteres。我一直用正则表达式尝试很多东西,但它对我没用。我几乎不知道C#,我真的需要本网站程序员的帮助。

using System;
using VisualWebRipper.Internal.SimpleHtmlParser;
using VisualWebRipper;
public class Script
{

    public static string TransformContent(WrContentTransformationArguments args)
    {
        try
        {
            //Place your transformation code here.
            //This example just returns the input data
            return args.Content;
        }
        catch(Exception exp)
        {
            //Place error handling here
            args.WriteDebug("Custom script error: " + exp.Message);
            return "Custom script error";
        }
    }
}

希望你能帮忙

3 个答案:

答案 0 :(得分:3)

删除任何不是数字的内容。数字有一个预定义的字符类:\d,否定为\D

所以你的正则表达式很简单:

\D+

在您的C#代码中,它将类似于

return Regex.Replace(args.Content, @"\D+", "");

答案 1 :(得分:2)

当然不是最有效的,但哦,好吧,我无法抗拒做一些LINQ:

var digitsOnly = new string(args.Content.Where(c => char.IsDigit(c)).ToArray())

答案 2 :(得分:0)

StringBuilder builder = new StringBuilder();
Regex regex = new Regex(@"\d{1}");
MatchCollection matches = regex.Matches(args.Content);
foreach (var match in matches)
{
    builder.Append(match.ToString());
}
return builder.ToString();