一个正则匹配无法匹配中文,怎样加上中文匹配?

zairwolf 2003-11-11 07:49:17
uploadcon="attach.gif[/img] 其他上传附件:金山词霸.torrent";
preg_match_all("|(?:/upload/)?(\w+\.\w+)|",$uploadcon,$regs);
print_r($regs);
如上的一个匹配,如$的话就匹配不好,$regs[1][1]是forum4_f_1090.torrent,但是$regs[1][2]就匹配不出“金山词霸.torrent”来了。
怎么修改那个正则?谢谢。
...全文
64 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
fish21cn 2003-11-12
  • 打赏
  • 举报
回复
$uploadcon="attach.gif[/img] 其他上传附件:金山词霸.torrent";
//preg_match_all("|(?:/upload/)?(\w+\.\w+)|",$uploadcon,$regs);
//preg_match_all("/(upload\/)?([a-zA-Z0-9_".chr(0x80)."-".chr(0xff)."]+\.[a-zA-Z0-9]+)/",$uploadcon,$regs);
preg_match_all("/(upload\/)?([a-zA-Z0-9_\x80-\xff]+\.[a-zA-Z0-9]+)/",$uploadcon,$regs);
print_r($regs);
简化版.
fish21cn 2003-11-12
  • 打赏
  • 举报
回复
asc码0x80以下都是单字节字符.
fish21cn 2003-11-12
  • 打赏
  • 举报
回复
$uploadcon="attach.gif[/img] 其他上传附件:金山词霸.torrent";
//preg_match_all("|(?:/upload/)?(\w+\.\w+)|",$uploadcon,$regs);
preg_match_all("/(upload\/)?([a-zA-Z0-9_".chr(0x80)."-".chr(0xff)."]+\.[a-zA-Z0-9]+)/",$uploadcon,$regs);
print_r($regs);

中文到底是0x80-0xff还是0xa1-0xff我不清楚.
不过应该对你的程序不打紧吧。
wangdongzjk 2003-11-11
  • 打赏
  • 举报
回复
中文的正则x80-\xff

21,891

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧