SQLからテーブル名を取得したい(例:) select name from user where id>5
。
私は正規表現を使おうとしています、私のパターンはfrom\s+(.*)(\s*$|where)
SQLに「where」が含まれていない場合は問題ありません。しかし、SQLに「where」が含まれている場合、答えとして「userwhereid>5」を取得します。
SQLには「where」がない可能性があるため、を使用$
しますが、(.*)(\s*$)
ほぼすべてに一致する可能性があるため、これを使用しようとするとfrom\s+(.*)(\s*where|$)
、同じ間違った答えが得られます。
使うと一致する順番があるのかな|
?どうすればいいですか?