2012-07-06 77 views
1

我希望使用.NET正则表达式创建一个正则表达式,该正则表达式接受一个输入字符串并输出一个字符串,其中字符从前面删除,但数字删除的字符取决于输入字符串的长度。使用正则表达式(正则表达式)根据输入字符串的长度去除字符

输入字符串可以是:

  1. ROC1230NNNNNNNN
  2. ROC1230NNNNNNNNN
  3. ROCNNNNNNNN
  4. ROCNNNNNNNNN

'N' 是总是数字和 '123' 可以是任何数量组合。前两种情况下的'0'总是'0','ROC'总是'ROC'。

在每种情况下,我只想返回'N'部分。即:

  1. NNNNNNNN
  2. nnnnnnnnn为
  3. NNNNNNNN
  4. nnnnnnnnn为

谢谢!

+0

你尝试过什么? “任何数字组合”总是任何3位数字后跟一个0,或者是任意数字的非零数字后面跟一个0? – 2012-07-06 10:27:39

+0

这将是前者。 – Neo 2012-07-06 12:51:29

回答

1

我推测, “123” 的部分永远是3个位数,试试这个:

string value = Regex.Match(input, @"^ROC(\d{3}0)?(\d+)$").Groups[2].Value; 
+0

完美,这是一种享受。谢谢! – Neo 2012-07-06 12:51:56

+0

不客气,我很乐意提供帮助。 – 2012-07-06 18:02:19

相关问题