正则表达式。高手入!!!

fish21cn 2005-05-26 04:17:03
有sql="SELECT * FROM (SELECT col1, col2 FROM t1, (SELECT col3, col4 FROM t2) t3) t4",我想通过正则取得第一重select与from之间的内容(即*)。请高手赐教。
...全文
153 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
fish21cn 2005-05-27
  • 打赏
  • 举报
回复
我自己写的。
\s*SELECT\s+(.*?)\s+FROM\s+(.*)

不过新问题来了。
见http://community.csdn.net/Expert/topic/4039/4039280.xml?temp=.6315424
zhangqingqi 2005-05-27
  • 打赏
  • 举报
回复
mark
uuq 2005-05-26
  • 打赏
  • 举报
回复
if(preg_match("/^select\s(.+)\sfrom/iU","SELECT * FROM (SELECT col1, col2 FROM t1, (SELECT col3, col4 FROM t2) t3) t4",$res))
{
print_r($res);
}
自已写有点丑陋。
ice_berg16 2005-05-26
  • 打赏
  • 举报
回复
不好意思...写错了
少加了参数
preg_match( "#SELECT (.+) FROM#isU", $sql, $res );
print_r( $res );
jFresH_MaN 2005-05-26
  • 打赏
  • 举报
回复
是的,一楼的是对的
加了?可以防止贪婪匹配。。
leojay1 2005-05-26
  • 打赏
  • 举报
回复
Meteorlet 2005-05-26
  • 打赏
  • 举报
回复
zhiin() ouk.cn () 是对的, ice_berg16(寻梦的稻草人) 少了?号
ice_berg16 2005-05-26
  • 打赏
  • 举报
回复
preg_match( "#SELECT (.+) FROM#is", $sql, $res );
print_r( $res );
zairwolf 2005-05-26
  • 打赏
  • 举报
回复
study~
zhiin1 2005-05-26
  • 打赏
  • 举报
回复
<?php
$sql="SELECT * FROM (SELECT col1, col2 FROM t1, (SELECT col3, col4 FROM t2) t3) t4";
echo preg_replace("/^SELECT (.*?) FROM .*/i", "\\1", $sql);
?>

21,887

社区成员

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

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