作者salagadoola (南瓜)
看板Perl
标题Re: [问题] 精确比对
时间Wed Jul 16 13:53:35 2008
※ 引述《DreamYEN (我本善良)》之铭言:
: 刚接触perl不久,有些东西搞不太懂
: 请问些很浅的问题
: 假设有20个pattern a1 a2 a3 .. a20
: 当我用一个while去做替换
: while ($line = <>) {
: if ($line =~ s/a1/b1/g)
: }
: 这样子做的话,会连 a11 ~ a19的 a1 都被替换掉
: 不知道有什麽方法可以精确的只比到想要的字串呢
if ($line =~ s/a1([^\d])/b1$1/g)
像这样把後面接着其他数字的 pattern 排除掉如何?
: 另一个问题,当宣告一个阵列
: my @a = 0;
: 这样子只会给这个阵列中的第一个值设定
: 不知道是否可以像 c 一样设定阵列的大小与初始值
: int a[10] = {0};
: 麻烦可以帮我解答这些简单的问题..谢谢
目前想到的写法是像这样:
my @arr; # 宣告一个阵列,目前它的大小为 0
$arr[10] = 0; # 现在这个阵列的大小是 11
@arr = map { 0 } @arr; # 把阵列里每个元素的值都变成 0
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.23.102
1F:推 DreamYEN:谢谢你的回应 07/16 18:27
2F:→ DreamYEN:後来我是在 a1 後面加上一个空白,这样子就不错判断错 07/16 18:27
3F:→ DreamYEN:虽然很暴力,但是至少可能跑^^" 07/16 18:28