如何提取子串直到第一个数字?

Jor*_*rge 2 regex perl

在找到第一个数字之前,如何找到第一个子字符串?

例子:

my $string = 'AAAA_BBBB_12_13_14' ;
Run Code Online (Sandbox Code Playgroud)

预期结果:'AAAA_BBBB_'

Dav*_*ebb 6

从你要使用正则表达式的标签来看。所以让我们建立这个。

  • 我们想从字符串的开头进行匹配,因此我们在开头使用了一个^元字符
  • 我们想匹配除数字以外的任何内容,因此我们查看字符类并发现这是\D
  • 我们想要其中的 1 个或更多,因此我们使用+量词,表示模式前一部分的 1 个或多个。

这为我们提供了以下正则表达式:

^\D+
Run Code Online (Sandbox Code Playgroud)

我们可以像这样在代码中使用:

my $string = 'AAAA_BBBB_12_13_14';
$string =~ /^\D+/;
my $result = $&;
Run Code Online (Sandbox Code Playgroud)