perl里面,怎样用regular expression来找某些中文字?

来源:百度知道 编辑:UC知道 时间:2024/06/19 03:34:12
比如说,文件是这样的:

张明的重量是100斤
小明的爸爸重量是70斤吗?
这只猪的重量是90斤还挺沉

我想用perl把“重量是”后面的数字取出来
如果可以用中文编程,那程序看起来是这样的:

open FILE "weight.txt";
while(<FILE>){
$_=~/重量是([0-9]+)/;
print "$1\n";
}

问题是我不能用中文编程
那个“重量是”我根本写不进程序去!
怎么解决这个问题呢?
可别给我出主意删去“重量是”,比如说这个文件可以是这样的

张明的重量是100斤
小明60岁的的爸爸重量是70斤吗?
这只猪的重量是90斤还挺沉,才2岁
山本56重量是120斤

我在我的xp下试了是可以的:

my $test_str='我是100斤';
if ($test_str=~/我是(\d+)斤/){print $1;}

你的脚本不能运行的原因可能是:
原始文件的中文字符集和perl所在的主机上的中文字符集不一致
建议你再试试。

NO WAY

人多组多的说

use utf8;