无法在C#中为字符串构建正确的正则表达式
我有一个字符串,看起来像这样:
string str1 = "f1/9999/d1/310822/orig1/GYD/dest1/SAW/f2/7777/d2/300922/orig2/SAW/dest2/GYD";
我试图构建一个正则表达式,它将匹配上面的字符串,但有以下条件:
(我将把上面的字符串拆分成子字符串,以便更好地解释我需要什么)
f1-是永远不会改变的文本“9999”应该始终是一个数字,这个子字符串的长度可以从2-6个字符变化
“d1”-这个文本永远不会改变“310822”-应该总是一个数字,这个子字符串的长度可以在2-6个字符之间变化
“orig 1”-是永不改变的文本
“GYD”-应始终为A-Z字符,长度始终为3 dest 1-此文本永不更改
“SAW”-应始终为A-Z字符,长度始终为3
“F2”-这段文字永远不会改变
“7777”-应该始终是一个数字,此子字符串的长度可以在2-6个字符之间变化
“d2”-此文本从未更改
“300922”-应该始终是一个数字,此子字符串的长度可以在2-6个字符之间变化
“orig 2”-此文本从未更改
“SAW”-应始终为A-Z字符,长度始终为3
“dest 2”-此文本永不更改
“GYD”-应始终为A-Z字符,长度始终为3
此外,所有的斜线都应该在正确的位置。
我试着像下面这样构建正则表达式,但它不起作用:
string str1 = "f1/123456/d1/310822/orig1/GYD/dest1/SAW/f2/7777/d2/300922/orig2/SAW/dest2/GYD";
if (Regex.IsMatch(str1, @"^[f1][/]\d{2,6}[/][d1][/]\d{2,6}[/][orig1][/]\b[a-zA-Z]{3}\b[/][dest1][/]\b[a-zA-Z]{3}\b[/][f2][/]\d{2,6}[/][d2][/]\d{2,6}[/][orig2][/]\b[a-zA-Z]{3}\b[/][dest2][/]\b[a-zA-Z]{3}\b$"))
{
richTextBox1.Text = "true";
}
else { richTextBox1.Text = "false"; }
我总是得到“false”知道如何为字符串str 1构建正确的正则表达式吗?
2条答案
按热度按时间ar5n3qh51#
试着跟随
efzxgjgh2#
此表达式将为您的字符串返回“true”