在c#中仅针对regex表达式验证并传递有效字符

时间:2017-01-08 07:49:09

标签: c# regex

我正在研究解决方案,我需要验证并在c#中只传递字符串的有效字符。 例如。我的正则表达式为:"^\\S(|(.|\\n)*\\S)\\Z" 和我要验证的文字在

之下
127 Finchfield Lane

现在我知道它无效了。但是,我如何删除对正则表达式的无效并仅在字符串验证成功对抗正则表达式时传递?

3 个答案:

答案 0 :(得分:0)

如果我理解正确,您正在寻找Regex.IsMatch

if(Regex.IsMatch(str, "^\\S(|(.|\\n)*\\S)\\Z"))
{
    // do something with the valid string
}
else
{
    // strip invalid characters from the string
}

答案 1 :(得分:0)

using System;
using System.Text.RegularExpressions;

namespace PatternMatching
{
    class Program
    {
        static void Main()
        {
            string pattern = @"(\d+) (\w+)";

            string[] strings = { "123 ABC", "ABC 123", "CD 45678", "57998 DAC" };

            foreach (var s in strings)
            {
                Match result = Regex.Match(s, pattern);

                if (result.Success)
                {
                    Console.WriteLine("Match: {0}", result.Value);
                }
            }

            Console.ReadKey();
        }
    }
}

这似乎可以满足您的需求。希望我没有被误解。

答案 2 :(得分:0)

要针对正则表达式验证字符串,您可以使用 Regex.IsMatch

Regex.IsMatch(string, pattern) //returns true if string is valid

如果您只想获得匹配值,则可以使用它。

Match match = new Regex(@"\d+").Match(str);
match.value;  //it returns only the matched string and unmatched string automatically stripped out