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 に答える