您好我有一些 SQL 代码,我正在尝试解析和提取一些文本。
CREATE OR REPLACE VIEW the_view_name as
REPLACE VIEW
我想要和之间的文本AS
不包括前导或尾随空格。
目前我得到了全部/REPLACE\s*VIEW(.*?)\s*AS/gi
。
谢谢
尝试这样做:
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
\S : Character class for non whitespace
您目前在 VIEW 之后缺少一个空格,如果您想要除空格之外的所有内容,那么您的捕获组应该是([^\s]*)
,它将收集所有内容直到一个空格。