正则替换的问题

来源:百度知道 编辑:UC知道 时间:2024/05/22 03:14:58
中括号内,是英语,则去除.如:[red]
中括号内,是中文,则保留.如:[红色]
我自写的正则替换,如下:
$replace='';
$pat='/\[(.+?)\]/';
$s111=preg_replace($pat,$replace,$s111);
运行结果,把英语和中文都去掉了.
要求是,中括号内,遇到英语就去掉,遇到中文则保留.
谢谢指点.

如果只是去掉中文,用第一个。如果包括所有全角字符,就用第二个:

匹配中文字符的正则表达式: [\u4e00-\u9fa5]

匹配双字节字符(包括汉字在内):[^\x00-\xff]