字符串分解

ttyp 2004-10-22 08:04:57
把字符串
"insert into goat (a,b) values(1,1) go select * from goat go"
按go分解成两句SQL语句
...全文
178 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
niuzhenjun 2004-10-25
  • 打赏
  • 举报
回复
'将传入的字符串拆分为一个字符串数组返回
Public Function StrSplit(ByVal words As String) As String()
Dim split As String() = Nothing
Dim totalLen As Int64 = words.Length
Dim len As Int64 = SplitStr.Length
Dim pos As Int64
Dim i As Int16 = 1
pos = words.IndexOf(SplitStr) 'SplitStr为自定义的拆分字符串
If (pos <> -1) Then
While (pos + len) < totalLen
ReDim Preserve split(i)
split(i - 1) = words.Substring(0, pos)
words = words.Substring(pos + len)
totalLen = words.Length
pos = words.IndexOf(SplitStr)
i += 1
If (pos = -1) Then
ReDim Preserve split(i)
split(i - 1) = words
pos = totalLen
End If
End While
Else
ReDim Preserve split(1)
split(0) = words
End If


Return split
End Function
oo渣渣oo 2004-10-25
  • 打赏
  • 举报
回复
变态方法(仅仅是思路,细节自行处理):
s1="insert into goat (a,b) values(1,1) go select * from goat go"
s1.Replace(" go",Chr(10)) '注意go前面的一个空格
s1.Split(Chr(10))
landlordh 2004-10-23
  • 打赏
  • 举报
回复
可以用"go "分解目前你的,但是我还是建议";"
如果用“go”,因为表名中有含,
ttyp 2004-10-22
  • 打赏
  • 举报
回复
因为是修改一个WEBSQL,用VB写的,用来执行SQL导出的SQL语句
捏造的信仰 2004-10-22
  • 打赏
  • 举报
回复
这是三句话吧。没记错的话本来应该用“;”来分开的吧?
水如烟 2004-10-22
  • 打赏
  • 举报
回复
Dim a As Array 是多余的了
水如烟 2004-10-22
  • 打赏
  • 举报
回复
VB的正则和C#的正则一回事呀,怎么不能用呢,奇怪也。

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim str As String = "insert into goat (a,b) values(1,1) go select * from goat go"
Console.WriteLine(Me.SplitSQL(str)(0)) 'insert into goat (a,b) values(1,1)
Console.WriteLine(Me.SplitSQL(str)(1)) 'select * from goat

End Sub
Private Function SplitSQL(ByVal SQL As String) As String()
If SQL.Trim.Length < 4 Then Return Nothing
Dim a As Array

Dim Last As String = SQL.Substring(SQL.Length - 3).ToLower
If Last.Equals(" go") Then SQL = SQL & " "
Return Microsoft.VisualBasic.Strings.Split(SQL, " go ", , CompareMethod.Text)
End Function
ttyp 2004-10-22
  • 打赏
  • 举报
回复
由于不熟悉VB.net,用C#我就正则了,希望能给个正则的VB的代码,呵呵
水如烟 2004-10-22
  • 打赏
  • 举报
回复
这样,先判断最后三个字母是不是" go",是的话加一个" "
然后按" go "分解就行了
真相重于对错 2004-10-22
  • 打赏
  • 举报
回复
split("go ")
xiaohutushen 2004-10-22
  • 打赏
  • 举报
回复
上面的不可以。
用这个:
// 在此处放置用户代码以初始化页面
string str = "insert into goat (a,b) values(1,1) go select * from goat go";

string str1 = str.Substring(0,str.IndexOf("select"));
string str2 = str.Substring(str.IndexOf("select"));
水如烟 2004-10-22
  • 打赏
  • 举报
回复
哈,不对
水如烟 2004-10-22
  • 打赏
  • 举报
回复
或者是" go"
水如烟 2004-10-22
  • 打赏
  • 举报
回复
其实是按" go "分解
xiaohutushen 2004-10-22
  • 打赏
  • 举报
回复
string str = "insert into goat (a,b) values(1,1) go select * from goat go";
string str1 = str.SubString(0,str.IndexOf("go")+2);
string str2 = str.SubString(str.IndexOf("go")+2);

16,721

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧