帮忙写一个正则?感激。。 string=qw_0_0-1额preg_match("/\/(\w+)_(\d+)_(\d+)-([\w]+)\>/si",$str);怎么我上面那个中文取不到值啊。只要出现中文就取值不到。。和解? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 [\w]+不能匹配中文中文的匹配:GBK编码的话是[\x80-\xff]utf-8的编码:[\x{4e00}-\x{9fa5}]或者你用.匹配所有字符,也可以匹配出中文。 还是获取不到哦、、string=qw_0_0-1额preg_match("/\/(\w+)_(\d+)_(\d+)-([\x80-\xff]+)\>/si",$str)是这样写吗? jordan说的对。你可以简单用\w匹配前面的数字字母下划线。如果要单独匹配出中文。也可以:<?php$string = 'qw_0_0-1额你好';preg_match_all("/(\w+-\d+(.*))/is",$string,$arr);print_r($arr[1]);//匹配串print_r($arr[2]);//中文放在这里 我不会写正则。。$str=qw_0_0-1额;preg_match("/\/(\w+)_(\d+)_(\d+)-([\w]+)\>/si",$str);我只是想把上面那个 “1额”给取出来。↑要怎么改 (preg_match("/\/(\w+)_(\d+)_(\d+)-(\w+-.+/)\>/si",$path_info,$arr_path)) $str="qw_0_0-1额>";(preg_match("/\/(\w+)_(\d+)_(\d+)-(\w+-.+/)\>/si",$str,$arr_path))我要分别取出qw001额这四个,去掉后面那个“>” <?php$string = 'qw_0_0-1额';preg_match_all("/\w+-(\d+(.*))/is",$string,$arr);print_r($arr[1]);//1额 用你的写法:<?php$str = "qw_0_0-1额>";$patten = '/(\w+)_(\w+)_(\w+)-(\d+[^<>]*)/is'; preg_match_all($patten,$str,$arr);print_r($arr); $str='qw_0_0-1额>';#1print_r(sscanf($str,'%[^_]_%d_%d-%[^>]>'));echo "<br/>";#2preg_match('#([^_]+)_(\d+)_(\d+)-([^>]+)>#',$str,$m);print_r($m); $s ='qw_0_0-1额>';$arr=split('[_-]',$s);print_r($arr); 这个没有去掉>应该加个>分割<?php$s ='qw_0_0-1额>';$arr=split('[>_-]',$s);print_r($arr); <?php$str = "qw_0_0-1额>";$patten = '/(\w+)_(\w+)_(\w+)-(\d+[^<>]*)/is'; preg_match_all($patten,$str,$arr);print_r($arr);这个可以哦。。如果我要过滤SQL语句做防注入呢? sql的话,应该检查用户的输入是否有select,drop,delete,alter...等关键字。 phpMailer多发邮件,邮件重复 php递归复制文件和目录 请看看哪里错了!!! php从数据库中取图片 并三行三列排列 关键字tag是如何做的? 是在信息那里有个字段 包含tag? 搜索的时候根据这个来查 还有热门tag有怎么实现? 我这段代码有什么问题? 再求一正则表达式! 我怎么能接受到远程的一个文件的资料? 见鬼啦 php session过期问题 PHP post 数据有误的问题 实现前三条显示new图片
GBK编码的话是[\x80-\xff]
utf-8的编码:[\x{4e00}-\x{9fa5}]或者你用.匹配所有字符,也可以匹配出中文。
preg_match("/\/(\w+)_(\d+)_(\d+)-([\x80-\xff]+)\>/si",$str)是这样写吗?
$string = 'qw_0_0-1额你好';
preg_match_all("/(\w+-\d+(.*))/is",$string,$arr);
print_r($arr[1]);//匹配串
print_r($arr[2]);//中文放在这里
$str=qw_0_0-1额;
preg_match("/\/(\w+)_(\d+)_(\d+)-([\w]+)\>/si",$str);我只是想把上面那个 “1额”给取出来。↑要怎么改
(preg_match("/\/(\w+)_(\d+)_(\d+)-(\w+-.+/)\>/si",$str,$arr_path))
我要分别取出
qw
0
0
1额这四个,去掉后面那个“>”
$string = 'qw_0_0-1额';
preg_match_all("/\w+-(\d+(.*))/is",$string,$arr);
print_r($arr[1]);//1额
用你的写法:
<?php
$str = "qw_0_0-1额>";
$patten = '/(\w+)_(\w+)_(\w+)-(\d+[^<>]*)/is';
preg_match_all($patten,$str,$arr);
print_r($arr);
#1
print_r(sscanf($str,'%[^_]_%d_%d-%[^>]>'));
echo "<br/>";
#2
preg_match('#([^_]+)_(\d+)_(\d+)-([^>]+)>#',$str,$m);
print_r($m);
$s ='qw_0_0-1额>';
$arr=split('[_-]',$s);
print_r($arr);
这个没有去掉>
应该加个>分割<?php
$s ='qw_0_0-1额>';
$arr=split('[>_-]',$s);
print_r($arr);
<?php
$str = "qw_0_0-1额>";
$patten = '/(\w+)_(\w+)_(\w+)-(\d+[^<>]*)/is';
preg_match_all($patten,$str,$arr);
print_r($arr);
这个可以哦。。
如果我要过滤SQL语句做防注入呢?
sql的话,应该检查用户的输入是否有select,drop,delete,alter...等关键字。