我有一段文本/代码,我需要在其中搜索include=,然后在'=‘后获取整个路径。我尝试了几种方法,但似乎就是无法在这段代码/文本中找到我想要的内容:
include=Y:\default\main\tsconfig\custom\inline\callouts\search\results.假设这是要搜索的xml:
<item name="Post Include Code">
<value>
First section of content
include=Y:\default\main\tsconfig\tsconfig\custom\inline\callouts\search\results.tpl
Second section of content
</value>
</item>代码:
if ($includeText=~ s/include=(.*)$/\1/) {
print "$1";
}
else {
print "no path";
}我想以Y:\default\main\tsconfig\custom\inline\callouts\search\results.tpl结束,这样我就可以包含一个模板。从另一个文件中提取文本/代码。
谢谢!
发布于 2011-06-25 13:28:04
我对你的脚本做了一个小小的改动,它是有效的:
$include = "include=Y:\\default\\main\\tsconfig\\custom\\inline\\callouts\\search\\results.";
if ($include =~ m/include=(.*)$/) {
print "$1";
}
else {
print "no path";
}发布于 2011-06-25 16:06:43
抱歉,伙计,我拿了你的脚本,用了它,它工作得很好。您的正则表达式没有任何问题,而是您的其他代码有问题,您还没有展示这些代码。
另外:多一点关于你的问题的信息将是很好的。“我好像就是搞不懂..”并不能告诉我们出了什么问题。
我的猜测是您没有使用:
use strict;
use warnings;因此,你做了一些愚蠢的事情,比如:
while ($includetext = <DATA>) {
if ($includeText =~ s/...)此脚本可以工作:
use warnings;
use strict;
while (<DATA>) {
if (s/include=(.*)$/$1/) {
print "$1";
}
else {
print "no path";
}
}
__DATA__
include=Y:\default\main\tsconfig\custom\inline\callouts\search\results.发布于 2011-06-25 20:00:19
我想这就是你要找的
#!/usr/bin/perl
use strict;
use diagnostics;
my $inc='include=Y:\default\main\tsconfig\custom\inline\callouts\search\results.tpl';
if ($inc =~ m{include=([\w\:\\\w /]+\w+\.\w+)} )
{
print $1;
}
else
{
print "no path";
}https://stackoverflow.com/questions/6476013
复制相似问题