检查字符串是否包含字符和数字

时间:2014-01-08 14:59:31

标签: c#

如何检查字符串是否包含以下字符“RM”,后跟任意数字或特殊字符( - ,_ etc),然后是“T”?

例如:thisIsaString ABRM21TC = yes,包含“RM”后跟一个数字,后跟“T”

Ex:thisIsaNotherString RM-T = yes,包含“RM”后跟一个特殊字符,然后是“T”

5 个答案:

答案 0 :(得分:4)

您想要使用正则表达式(正则表达式)检查字符串。有关如何执行此操作的信息,请参阅此MSDN

http://msdn.microsoft.com/en-us/library/ms228595.aspx

答案 1 :(得分:2)

试试这个正则表达式。

[^RM]*RM[^RMT]+T[^RMT]*

这是一个示例程序。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;

namespace ConsoleApplication12
{
    class Program
    {
        static void Main(string[] args)
        {
            String rg = "[^RM]*RM[^RMT]+T[^RMT]*";
            string input = "111RM----T222";

            Match match = Regex.Match(input, rg, RegexOptions.IgnoreCase);

            Console.WriteLine(match.Success);
        }

    }

}

答案 2 :(得分:2)

您可以使用简单的正则表达式执行此操作:

var match = Regex.Match(s, "RM([^T]+)T");
  • 通过调用match.Success来检查模式是否存在。
  • 通过调用match.Groups[1]获取捕获的值。

这是一个演示(关于ideone:link):

foreach (var s in new[] {"ABRM21TC", "RM-T", "RxM-T", "ABR21TC"} ) {
    var match = Regex.Match(s, "RM([^T]+)T");
    Console.WriteLine("'{0}' - {1} (Captures '{2}')", s, match.Success, match.Groups[1]);
}

打印

'ABRM21TC' - True (Captures '21')
'RM-T' - True (Captures '-')
'RxM-T' - False (Captures '')
'ABR21TC' - False (Captures '')

答案 3 :(得分:1)

使用正则表达式

http://www.webresourcesdepot.com/learn-test-regular-expressions-with-the-regulator/

Regulator是一款先进的免费正则表达式测试和学习工具。它允许您针对任何文本输入,文件或Web构建和验证正则表达式,并在易于理解的分层树中显示匹配,拆分或替换结果。

答案 4 :(得分:1)

您应该使用更多样本数据,特别是有关特殊字符的数据,您可以使用regexpal, I have added the two cases and an expression to get you started