2016-07-28 125 views
-1

我想在开始时排除一个固定的字符串,这样我只能得到固定字符串后面的数字。正则表达式排除在字符串开头的字符串

固定字符串是RE163,所以这里有一些例子与预期的结果:

Example  Result 
RE16310000 10000 
RE16312345 12345 
RE16316300 16300 

我已经试过以下的正则表达式:

它适用于这些例子:

RE16310000 10000 
RE16319999 19999 

但不适合:

RE16320000 320000 (Expected 20000) 
RE16316320 320  (Expected 16320) 
+5

*我已经尝试了以下正则表达式*。我看不到任何正则表达式! –

+2

为什么不只是'myString = myString.Remove(“RE163”)'? –

+0

我添加了一个.NET标记,因为正则表达式解决方案应该适用于.NET正则表达式。 –

回答

4

为什么正则表达式?只是Substring是不够的:

string source = "RE16310000"; 

string result = source.Substring(5); 

如果你必须使用正则表达式,你可以尝试

(?<=RE163)[0-9]+$ 

模式; C#例如:

string pattern = @"(?<=RE163)[0-9]+$"; 

string result = Regex.Match(source, pattern).Value; 
+0

抱歉,这是电子文件格式。所以我不能只使用C#正则表达式来过滤一行 – Lou

+0

@Lou:如果你必须使用正则表达式,那么patter可以是'(?<= RE163)。+ $' –

1

尝试使用以下正则表达式^(?:RE163)(\d*)

  • ^为线
  • 的开始:是一种非捕获组
  • (?:RE163)忽略所述第一5个字母和你不想要的号码
  • (\ d *)是捕获你想要的号码的组
相关问题