后面的几个$是要有(),即新的匹配模式才会生成的。每个满足匹配模式的子字符串才会储存到$2等里面的。kofshower 写了: 之后的依次是$2,$3,$4,$5.
我是从ruby这们语法和perl和类似的语言想到的.后来看了perl handbook.
我本身不会perl
不过,多谢了,你不必浪费时间在我这种问题上的,还要害你再查别的资料,不好意思阿……
后面的几个$是要有(),即新的匹配模式才会生成的。每个满足匹配模式的子字符串才会储存到$2等里面的。kofshower 写了: 之后的依次是$2,$3,$4,$5.
我是从ruby这们语法和perl和类似的语言想到的.后来看了perl handbook.
我本身不会perl
给出输入以及预期结果banban 写了:貌似结果不正确,我想要的结果是要显示几个字符串的,难道要用到多维数组?不对,维数又不能确定,容我想想……heejun 写了:可以使用global match代码: 全选
#!/usr/bin/perl use strict; use warnings; my $data = "atggcagttggtacctaagcattdggtacccgtta"; my @match = $data =~ m/([atcgdu]{4}ggtacc)/g; print "$_\n" foreach @match;
but why?agttggtacc
attdggtacc
碱基里面有d?
这个不好意思哦,应当是没有d的,是我当时输错了。就当没有就好了……heejun 写了:可以使用global match代码: 全选
#!/usr/bin/perl use strict; use warnings; my $data = "atggcagttggtacctaagcattdggtacccgtta"; my @match = $data =~ m/([atcgdu]{4}ggtacc)/g; print "$_\n" foreach @match;
but why?agttggtacc
attdggtacc
碱基里面有d?
代码: 全选
#!/usr/bin/perl
use strict;
use warnings;
my $data = "atggcagttggtacctaagcattdggtacccgtta";
my @match = $data =~ m/([atcgdu]{4}ggtacc)/g;
print "$_\n" foreach @match;
果真是可以了,我第一次怎么执行结果不正确,我还以为这样写不对呢。呵呵。kofshower 写了:上面不是可以了么,代码: 全选
#!/usr/bin/perl use strict; use warnings; my $data = "atggcagttggtacctaagcattdggtacccgtta"; my @match = $data =~ m/([atcgdu]{4}ggtacc)/g; print "$_\n" foreach @match;
算是学习了,以前没有使用过perl的说,可是perl的语义太依赖上下文,不是很喜欢.
代码: 全选
g Match globally, i.e. find all occurrences.
i Makes the search case-insensitive.
m If the string has new-line characters embedded within it, the metacharacters ^ and $ will not work correctly. This modifier tells Perl to treat this line as a multiple line.
o Only compile pattern once.
s The character . matches any character except a new line. This modifier treats this line as a single line, which allows . to match a new-line character.
x Allows white space in the expression.