Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 字符应在搜索字符串之前出现几次_Regex_Perl - Fatal编程技术网

Regex 字符应在搜索字符串之前出现几次

Regex 字符应在搜索字符串之前出现几次,regex,perl,Regex,Perl,假设我有这部分数据: asdsad;adafds;asfdafas;frewf;gggf 121132;sadf12;124fd;1243fd;dfgfew 。。。字符串分隔符是 我怎样才能得到每行的第四部分?例如,;[这] 这不起作用:;{3} (\w+) 我需要正则表达式,因为我想在Schartzian变换中使用它 您可以使用以下正则表达式: ([^;]+;){3}([^;]+) 第二个捕获的组(\2或$2)将包含您想要的内容: 例如:(\2/$2)上面的问题将包含frewf和1243fd

假设我有这部分数据:

asdsad;adafds;asfdafas;frewf;gggf
121132;sadf12;124fd;1243fd;dfgfew
。。。字符串分隔符是

我怎样才能得到每行的第四部分?例如,
;[这]

这不起作用:
;{3} (\w+)

我需要正则表达式,因为我想在Schartzian变换中使用它


您可以使用以下正则表达式:

([^;]+;){3}([^;]+)

第二个捕获的组(
\2
$2
)将包含您想要的内容:

例如:(
\2
/
$2
)上面的问题将包含
frewf
1243fd


演示:

是的,这会起作用,但我需要正则表达式,因为我想在map语句中使用它。没有任何东西可以阻止您在
地图
中使用
拆分
<代码>我的@fourths=map{(split';',$_)[3]}@array即使在schwartian Transform中,它也能工作,而且我认为它比regex快,谢谢
use strict;
use warnings;

while (<DATA>) {
    chomp;
    my $fourth = (split ';', $_)[3];
    print "$fourth\n";
}

__DATA__
asdsad;adafds;asfdafas;frewf;gggf
121132;sadf12;124fd;1243fd;dfgfew
frewf
1243fd