Regex 如何在Perl中提取字符串的一部分?
我有一个包含如下数据的输入文件:Regex 如何在Perl中提取字符串的一部分?,regex,perl,Regex,Perl,我有一个包含如下数据的输入文件: X-X-D-X-X-A X-D-X-A-X D-X-X-X-X-A-X-X 我只需要给我一个结果 D-X-X-A D-X-A D-X-X-X-X-A 请帮帮我 你可以试试 open my $fh, "<", "file" or die $!; while (my $line = <$fh>) { $line =~ s/^[-X]+ | [-X]+(?=\s*$)//xg; print $line; } close $fh; 你可
X-X-D-X-X-A
X-D-X-A-X
D-X-X-X-X-A-X-X
我只需要给我一个结果
D-X-X-A
D-X-A
D-X-X-X-X-A
请帮帮我 你可以试试
open my $fh, "<", "file" or die $!;
while (my $line = <$fh>) {
$line =~ s/^[-X]+ | [-X]+(?=\s*$)//xg;
print $line;
}
close $fh;
你可以试试
open my $fh, "<", "file" or die $!;
while (my $line = <$fh>) {
$line =~ s/^[-X]+ | [-X]+(?=\s*$)//xg;
print $line;
}
close $fh;
测试代码:
my @a = qw[
X-X-D-X-X-A
X-D-X-A-X
D-X-X-X-X-A-X-X
];
for my $a (@a) {
if ($a =~ /(D[-X]+A)/) {
print $1,"\n";
}
}
测试代码:
my @a = qw[
X-X-D-X-X-A
X-D-X-A-X
D-X-X-X-X-A-X-X
];
for my $a (@a) {
if ($a =~ /(D[-X]+A)/) {
print $1,"\n";
}
}
读取文件时在脚本内部执行以下操作:
while (my $line = <$fh>) {
$line =~ m/[^D]*(D.*A).*/g;
print $1;
}
正则表达式:
[^D]*D.*A*
[^D]*行不能以D开头
D.*A Captureround将从D到最后一个A的注视点支撑起来
线捕获的部分将存储在$1中
*行中剩余的字符串。
读取文件时在脚本内部执行以下操作:
while (my $line = <$fh>) {
$line =~ m/[^D]*(D.*A).*/g;
print $1;
}
正则表达式:
[^D]*D.*A*
[^D]*行不能以D开头
D.*A Captureround将从D到最后一个A的注视点支撑起来
线捕获的部分将存储在$1中
*行中剩余的字符串。
我假设不需要将模式硬编码为$s…数据可能是动态的!!:我假设不需要将模式硬编码为$s…数据可能是动态的!!:你能帮我提供一个关于如何使用“$line=~s/^[-X]+|[-X]+$//xg;”的详细代码吗举个简单的例子会很有帮助,它给我的结果是“A-X-X-X-X-X-D A-X-X-D D D A”,我只想提取起点为D,终点为A或A的字符串。我不希望结果包含单个D或A。同样的问题再次出现。。我仍然得到一个D和A,以及我要寻找的实际输出。我找到了问题所在。我的文件还包括X-D-X-X和X-A-X-X-X等行。。。我怎么能忽略这些单例呢?你能帮我提供一个关于如何使用“$line=~s/^[-X]+|[-X]+$//xg;”的详细代码吗举个简单的例子会很有帮助,它给我的结果是“A-X-X-X-X-X-D A-X-X-D D D A”,我只想提取起点为D,终点为A或A的字符串。我不希望结果包含单个D或A。同样的问题再次出现。。我仍然得到一个D和A,以及我要寻找的实际输出。我找到了问题所在。我的文件还包括X-D-X-X和X-A-X-X-X等行。。。我怎么能忽略这些单打呢?你好,维奈,你能为以上答案提供一个简短的代码吗。我对编程非常陌生,无法直接实现上述答案。在从txt文件获取输入时,如何使用此代码。?你好,Vinay,请提供上述答案的简要代码。我对编程非常陌生,不能直接实现上面的答案。如何在从txt文件获取输入时使用此代码。?