如何使用RegEx表达式提取String的某些部分?

时间:2017-03-30 01:15:27

标签: regex regex-negation

我想从给定的String

中提取某些值

字符串 - > 1的 ABCDE 23

我只需要来自上面字符串值的ABCDE。始终跳过第一个值(1)并获得接下来的5个字符(ABCDE)并跳过其余的(23)

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

  

总是跳过第一个值(1)并获得接下来的5个字符(ABCDE)并跳过其余的(23)

这只是从字符串中提取子字符串!你不需要正则表达式 - 假设你使用的是一种理智的语言,你必须使用你正在使用的语言更快的功能。

以下是一些例子:

  • Java:String abcde = "1ABCDE23".substring(1, 6);
  • JavaScript:var abcde = "1ABCDE23".substring(1, 6);
  • C ++:std::string abcde = std::string("1ABCDE23").substr(1, 5);
  • Python:abcde = "1ABCDE23"[1:6]
  • PHP:$abcde = substr("1ABCDE23", 1, 5);
  • C#:string abcde = "1ABCDE23".Substring(1, 5);
  • Perl:$abcde = substr "1ABCDE23", 1, 5;
  • Ruby:abcde = "1ABCDE23"[1...6]

如果您使用的是一种疯狂的语言,它具有支持捕获组的正则表达式引擎,但不支持从字符串中提取子字符串,您可以运行此正则表达式(suggested by sln)并执行第一次捕获组:

^.(.{5}).*

^          the match must be at the beginning of the string
 .         match any character
  (    )   put what's matched by the parenthesized expression into the 1st capturing group
   .{5}    match 5 characters; any character goes
        .* match 0 or more characters; any character goes