【发布时间】:2018-12-11 11:39:27
【问题描述】:
我正在尝试用位于其他两个部分之间的子字符串替换字符串。
为了描述,我有一个文件,其中包含一些文本。在这个文本文件中,有一个单词,其中的某些部分用不同的字符编写,例如:
acc\E34rate
acc\?4rate
acc§54rate
.....
我想写成代码是,查找acc,然后查找rate,然后用u 替换它们之间的内容。因为所有的字符串都与前半部分和后半部分一致。
我想知道如何在 Perl 中做到这一点?
谢谢!
更新:包括代码
我写的是:
use strict;
use warnings;
my @stringArray = ('acc\E34rate', 'acc\?4rate');
my $find = '\E34';
my $replace = 'u';
my @newArray;
foreach my $str(@stringArray)
{
my $pos = index($str, $find);
while($pos > -1) {
substr($str, $pos, length($find), $replace);
$pos = index($str, $find, $pos + length($replace));
}
push @newSrray, $str;
}
foreach(@newArray)
{
print "$_\r\n";
}
为了简化,我添加了一个数组而不是文件。因为它只适用于正确的单词而不是整个数组/文件。
【问题讨论】:
-
“它的某些部分是用不同的字符写的”不是一个明确的分割标准......
-
@timgeb 好吧,我只有这个想法。如果您有更好的想法,请将其写为答案! :)
-
@Royeh:呃,这不是它的工作原理。编程从尽可能清晰地概述您的功能需求开始......此外,您似乎忘记粘贴代码。到目前为止,您尝试过什么?
-
@L.O.vanIngen 你现在可以找到我对问题和代码的更新!
标签: arrays string perl substring