如何从一段字符中取出我的我想要的部分 先把Select给替换成空的,然后用from分开不就得到你要的了?,用不上正则,适当的话,可以来一个trim 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 使用分词例如split函数 可能会比较简单将字符串分成(select) (field1),(field2) (from) (tablename)然后再提取 倒,这这么做有什么用途吗?/select\s+([^\s]+)\S+from\s([^\s]+)/其中$1和$2就是你要的了 <pre><?php$str = 'select field1,field2 from tablename';print_r(getStruct($str));function getStruct($s) { list($s1,$s2) = split(' from ',$s); $s1 = trim(str_replace(array('select','SELECT'),'',$s1)); $rs['fields'] = split(',',$s1); $rs['table'] = trim($s2); return $rs;}?></pre>为什么一做字符串处理就想到用正则,这种思想是不对的...正则不是万能,而且在大部份情况下,速度比较慢 呵呵,LZ的还需要改改,不然后面有一个where或者ordr by之类的可就要出错了 $sql = 'select field1,field2 from tablename';preg_match_all('/select\s+(.*)\s+from\s+(.*)/',$sql,$matchs);print_r($matchs); 楼主如果是写个sql类啊思路上有问题吧如果是 字段 和表名可以做参数 新手请教啊 php 怎么禁止浏览器后退 想问一下在php或html中 怎样生成一棵树 请问如何在PHP里嵌入HTML 又是正则....谢谢啊。。。 很尴尬的配置! 大家学习php时都用什么好的源码啊? 用get如何传递有等号的字符串? 一个关于mail的问题!!! ajax从1到100的单个数字变换 求一个简单例子 php
(select) (field1),(field2) (from) (tablename)
然后再提取
<?php
$str = 'select field1,field2 from tablename';
print_r(getStruct($str));function getStruct($s) {
list($s1,$s2) = split(' from ',$s);
$s1 = trim(str_replace(array('select','SELECT'),'',$s1));
$rs['fields'] = split(',',$s1);
$rs['table'] = trim($s2);
return $rs;
}
?>
</pre>为什么一做字符串处理就想到用正则,这种思想是不对的...
正则不是万能,而且在大部份情况下,速度比较慢
preg_match_all('/select\s+(.*)\s+from\s+(.*)/',$sql,$matchs);
print_r($matchs);
啊思路上有问题吧如果是 字段 和表名可以做参数