正则表达式与管道分隔符?

Mug*_*ara 1 regex perl

这是我的字符串:

my $var = "eval(sometext,'|function|65200|url|click|Chargement|margin'.split('|'),0,{}))"
Run Code Online (Sandbox Code Playgroud)

我想得到65200的数字,我试过这个my ($key) = $var =~ /eval.*?\|(\d+)\|.*$/正则表达式,但我什么都没得到.

Bor*_*din 5

如果您只需要第一个由十进制数字组成的子字符串,那么它非常简单:

my $var = "eval(sometext,'|function|65200|url|click|Chargement|margin'.split('|'),0,{}))";

my ($num) = $var =~ /(\d+)/;

print $num;
Run Code Online (Sandbox Code Playgroud)

产量

65200
Run Code Online (Sandbox Code Playgroud)

更新

要提取由管道字符包围的第一个数字序列,只需使用

my ($num) = $var =~ /\|(\d+)\|/;
Run Code Online (Sandbox Code Playgroud)

  • @ user2832222:没有必要.查看我的更新. (2认同)