格式:
TB-字符串1-String2的年NumericData1-NumericData1DigitAlways
按照上述格式的例子。
TB-testdata1-testData2-2015-65789-3
这是我为
所尝试的 var result = Regex.Match(testData, @"\T\B-\S{2,5}\-\S{2,5}\-[\d{4}]\-\^[0-9]+$\-[\d]");
if (result.Success)
{
Return match;
Else
{
Return noMatch;
}
抛出无效的参数异常。
这是要求。
前两个字母总是“TB”。不区分大小写。
上面的每个项目都以“ - ”分隔。
String1 - >从a到z的任何字符。不区分大小写。应该在2到5个字符之间。
String2 - >从a到z的任何字符。不区分大小写。应该在2到5个字符之间
年 - >始终应该是4个字符的数字数据。这是年份数据。所以它应该只是+ ve数字。
NumericData1 - >仅限正数数据。应该在2到10个字符之间。
NumericData1DigitAlways - >始终只有0到8之间的1位数字数据。
我已经单独尝试了每个部件。当我将表达式连接在一起时,它就会中断。
感谢您的帮助。
答案 0 :(得分:1)
根据你的条件,你的正则表达并不完美。你可以使用
var result = Regex.Match(testData, @"[tT][bB]-([a-zA-Z]{2,5}-){2}\d{4}-\d{2,10}-[0-8]");
说明:
\S
(除空格外的所有字符)对于a-z之间的任何字符都应更改为[a-zA-Z]
,而不是区分大小写\d
结尾的[0-8]
^ and $
^[0-9]+$
,因为他们会检查字符串的开头和结尾