0

您好我有一些 SQL 代码,我正在尝试解析和提取一些文本。

CREATE OR REPLACE VIEW the_view_name as

REPLACE VIEW我想要和之间的文本AS不包括前导或尾随空格。

目前我得到了全部/REPLACE\s*VIEW(.*?)\s*AS/gi

谢谢

4

2 回答 2

3

尝试这样做:

 echo 'CREATE OR REPLACE VIEW the_view_name as' |
     perl -lne '/replace\s+view\s+(.*?)\s+as\b/i && print "[$1]"'
[the_view_name]

您也可以在您的情况下使用此正则表达式:

/replace\s+view\s+(\S+)\s+as\b/i

perldoc perlrebackslash

\S : Character class for non whitespace
于 2013-03-28T23:36:16.710 回答
0

您目前在 VIEW 之后缺少一个空格,如果您想要除空格之外的所有内容,那么您的捕获组应该是([^\s]*),它将收集所有内容直到一个空格。

于 2013-03-28T23:36:16.337 回答