如何检查字符串是否包含以下字符“RM”,后跟任意数字或特殊字符( - ,_ etc),然后是“T”?
例如:thisIsaString ABRM21TC = yes,包含“RM”后跟一个数字,后跟“T”
Ex:thisIsaNotherString RM-T = yes,包含“RM”后跟一个特殊字符,然后是“T”
答案 0 :(得分:4)
您想要使用正则表达式(正则表达式)检查字符串。有关如何执行此操作的信息,请参阅此MSDN
答案 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。