关于模式匹配取值的问题

关于模式匹配取值的问题

$pString=~s/ATTR(\d*)/ATTR\($1\)/g;


这个表达式中我想把\d*的内容取到 $1中,可是如果变量中的数字是10,11,12。。。我想放到$1中只能取到十位数“1”,想请教下有什么好办法吗?

例如:$pString=10
$pString=~s/ATTR(\d*)/ATTR\($1\)/g;
$1= 1

而我其实想取得是 $1 = 10


万分感谢!!!
再用一个括号捕获不就行了马


[Copy to clipboard] [ - ]
CODE:
$_ = 10;
/(\d+)/;
print $1;



QUOTE:
原帖由 andylei 于 2008-10-24 09:46 发表
$pString=~s/ATTR(\d*)/ATTR\($1\)/g;


这个表达式中我想把\d*的内容取到 $1中,可是如果变量中的数字是10,11,12。。。我想放到$1中只能取到十位数“1”,想请教下有什么好办法吗?

例如:$pString=10 ...

想修改pString内容的话才用s///
要是知道数字位数可以明确写上\d{n} 。只取1x:  $pString =~ /ATTR(1\d)/;