【发布时间】:2012-02-09 17:06:00
【问题描述】:
我需要在 mysqldump 结果中获取可执行 cmets 的内容,但是对于正则表达式
/\/\*\!\d+\s+(.*?)\*\//s
并像这样输入数据:
/*!50003 text
some text else
/*
comment
also comment
*/
text...
and also text...
*/
我得到错误的结果,因为它只从“文本”到“也注释”行获取数据。我怎样才能跳过评论进入评论? 谢谢。
UPD:我不能使用“^”和“$”来标记输入的开始和结束,因为我在输入中有很多可执行语句。
UPD2:我想要的输出:
text
some text else
/*
comment
also comment
*/
text...
and also text...
并非所有人都在下面的评论中输入如何。我认为这很奇怪,得到与输入相同的输出。
UPD3: 可执行注释的开头必须是 /*!ANYNUMBER。它必须被跳过并且不包含在输出中。可执行注释的结尾很简单 */ 右输出示例在“UPD2”中呈现。
【问题讨论】:
-
您想“解开”所有 cmets 的最外层评论,剥离评论的某些部分,还是只想对以特定模式开头的 cmets 执行此操作?第一部分的确切模式是什么?究竟是“!50003 text”,还是数字可以是任何东西? “文本”部分的确切模式是什么?是一个字吗?一切直到新线? overall goal 是什么?
-
当然,我问的是“常见”问题,而不是“!50003”被硬编码的情况。