【发布时间】:2012-01-11 16:01:21
【问题描述】:
我正在寻找一个正则表达式,它将匹配 PHP (PCRE) 兼容模式中的所有粗体文本,这只是一个需要匹配的示例查询,所以它不能太具体以至于它会赢'不适用于其他类似的查询。
select a.*, (select count(*) from table1 ) as t1, (select count(*) from table2 ) as t2, (select count(*) from table3 ) as t3, col1, col2 来自 table4 作为 LEFT JOIN ( SELECT g2.*,g1.id from table5 ) as g ON (a.id = g.id) );
更新:我的想法是匹配不在任何括号之间的单词 FROM 以及它之前的所有内容。最终目标是将所有粗体文本替换为数据库抽象层的“COUNT()”。
【问题讨论】:
-
不确定是否可以使用正则表达式,因为您有嵌套查询。
-
鉴于您的
SELECT的嵌套性质,这将很难。 -
要做到这一点,我们需要知道粗体部分与非粗体部分相比有什么特别或独特之处,尤其是在它们相遇的地方——否则你对“如此具体”的规定"使这成为不可能。例如,应该只包含前三个表,还是到指定列的第一个表...?
-
你能再具体一点吗?您提供的示例与您的问题的标题不匹配。它是哪一个:粗体文本,或不在括号内的文本(这到底是什么意思)?
-
@Miky - 编辑删除了文本中的粗体