正则表达式匹配中文

正则表达式匹配中文

有一个文件,里面的内容有点乱
大概格式都是这样的

姓名dsf424**(*(%^%住址8989HJKHKJHHJ^&&*



现在想取出姓名和住址这两列里的内容,用正则表达是怎么取呢,也就是说在姓名和住址之间的分隔符号可能是任何非中文的字符

谢谢
may this essence be helpful to you

http://bbs.chinaunix.net/viewthr ... p%3Bfilter%3Ddigest

恩,谢谢
看了,如果我的文件是utf8的,那里面有全角和半角的一些标点的话,又该怎么匹配呢,再麻烦一下
[\x80-\xff]能匹配到汉字,但是不想要标点,怎么办呢


QUOTE:
原帖由 boot2046 于 2007-9-24 16:27 发表
[\x80-\xff]能匹配到汉字,但是不想要标点,怎么办呢

用UTF8保存下面的代码

use strict;
use warnings;
use utf8;
use Encode;

binmode(STDOUT, ':encoding(GBK)');


my $str  = 'Chinese: 中,.!,,秋快乐.。!';

while ($str =~ /([\x{4e00}-\x{9fa5}])/g) {
    print $1, "\n";
};



### 运行结果 ###





QUOTE:
### 运行结果 ###






[Copy to clipboard] [ - ]
CODE:
my $happy ="Tur fnzr gb lbh, naq gb nyy!";
$happy=~tr/a-z/n-za-m/;
print $happy;

运行结果:

[Copy to clipboard] [ - ]
CODE:
The same to you, and to all!

恩,好的,谢谢了
http://perldoc.perl.org/perlunicode.html中,关于Unicode的匹配,就没有\uxxxx的表达方式,只有\x{xxxx}
长见识了