本帖最后由 heavenm 于 2019-9-13 01:27 编辑
2种方法,网上一般都流传第一种方法.终于找到方法2,我觉得第二条语句好用多了
1.PRAGMA table_info([table_name])
2.SELECT sql FROM sqlite_master WHERE tbl_name = 'table_name' AND type = 'table'
下面这个奇怪的数据表名称可以用正则获取到正确的表名么
如果遇见奇怪的数据库名称比如 aa"a数据库查询出来的结果是 ,中间多了一个双引号CREATE TABLE "level" (
"aa""a" TEXT,
"bb" TEXT
)
### 友情提示:本脚本由 Au3.REHelper 于 2019/09/13 01:21 自动生成,不保证其正确性,请自行测试 ###
#include <Array.au3>
Local $sSource = _
'CREATE TABLE "level" (' & @CRLF & _
' "a' & "'a" & '""a" TEXT,' & @CRLF & _
' "bb" TEXT' & @CRLF & _
')'
;~MsgBox(0, '源字符串', $sSource)
Local $aSRE = StringRegExp($sSource, '"(.+)"', 3)
If Not @Error Then MsgBox(0, '匹配数量: ' & UBound($aSRE), '其中[0]元素为: ' & $aSRE[0])
_ArrayDisplay($aSRE, UBound($aSRE))
其实这种数据库名称应该不会出现,
可我就是突然想到了
突然好奇
然后突然想不到解法
突然觉得我是吃饱撑着了
|