perl 正则表达式 匹配 问题

my$str="gi|89106981|ref|AP_000761.1|";my$s=">gi|89106885|ref|AP_000665.1|throperonlea... my $str="gi|89106981|ref|AP_000761.1|";
my $s=">gi|89106885|ref|AP_000665.1| thr operon leader peptide [Escherichia coli str. K-12 substr. W3110]";
if ($s=~/^>\$str/) {
print "u";
}
运行是错误的,那应该怎样写呢?
展开
 我来答
xdruid
2012-09-15 · 超过31用户采纳过TA的回答
知道答主
回答量:111
采纳率:0%
帮助的人:83.6万
展开全部
$str里面的字符需要转义,my $str="gi\\|89106981\\|ref\\|AP_000761\\.1\\|";
其实还可以这样写:
my $str=qr"^>gi\|89106981\|ref\|AP_000761\.1\|";
my $s=">gi|89106885|ref|AP_000665.1| thr operon leader peptide [Escherichia coli str. K-12 substr. W3110]";
if ($s=~$str) {
print "u";
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
achenge07
2012-09-16 · TA获得超过158个赞
知道答主
回答量:205
采纳率:0%
帮助的人:86.7万
展开全部
可以写成$s =~ /^>\Q$str\E/
告诉编译器匹配$str这个变量
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
willshdanvis
2012-09-14 · TA获得超过1018个赞
知道大有可为答主
回答量:2042
采纳率:100%
帮助的人:1350万
展开全部
匹配里不要加\,直接$
追问
直接加了是能算出来,不过应该是错的。因为在你说的情况下,把$str文本内容改下也能 print 出来。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
niejieqiang
2012-09-15 · TA获得超过142个赞
知道小有建树答主
回答量:329
采纳率:100%
帮助的人:206万
展开全部
\把$转义了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式