以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  提取字符串  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=194793)

--  作者:蓝蚂蚁
--  发布时间:2025/1/14 19:55:00
--  提取字符串
下面的代码是提取括号中的076927赋给TextBox1,学校代码赋给DropBox1
Dim Value As String = “【我的中国梦主题】 (076927学校代码)”   ‘这个括号是全角
Dim sps() As Char = {"(",")"}
Dim Names() As String  = Value.Split(sps)
Dim s1,s2 As String
s1=Names(1).Substring(0,6)
s2=Names(1).Substring(6)
e.Form.controls("TextBox1").value=s1
e.Form.controls("DropBox1").value=s2
以上代码有时候会报错(不知道是不是因为括号有时候是英文状态的原因)。如果是全角和英文状态下混合的括号,如何处理?谢谢

--  作者:有点蓝
--  发布时间:2025/1/14 20:14:00
--  
Dim pattern As String = "(?<=\\(|().*?(?=\\)|))" \'匹配括号中的内容
Dim txt = "【我的中国梦主题】 (076927学校代码)"
Dim rgx = New System.Text.RegularExpressions.Regex(pattern, System.Text.RegularExpressions.RegexOptions.IgnoreCase)

For Each match As System.Text.RegularExpressions.Match In rgx.Matches(txt)
    Output.Show(match.Value.Substring(0, 6))
Next

--  作者:蓝蚂蚁
--  发布时间:2025/1/14 20:38:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:33.png
图片点击可在新窗口打开查看
提示这错误

--  作者:有点蓝
--  发布时间:2025/1/14 21:34:00
--  
里面的数字不是固定6位?

Dim pattern As String = "(?<=\\(|().*?(?=\\)|))" \'匹配括号中的内容
Dim txt = "【我的中国梦主题】 (076927学校代码)"
Dim rgx = New System.Text.RegularExpressions.Regex(pattern, System.Text.RegularExpressions.RegexOptions.IgnoreCase)

For Each match As System.Text.RegularExpressions.Match In rgx.Matches(txt)
    Dim str = System.Text.RegularExpressions.Regex.Replace(match.Value , "[^\\d+]" , "")
    Output.Show(str)
Next
[此贴子已经被作者于2025/1/14 21:34:37编辑过]

--  作者:蓝蚂蚁
--  发布时间:2025/1/14 21:56:00
--  
数字是固定6位的,按照你上面的代码执行返回结果是空白的


--  作者:蓝蚂蚁
--  发布时间:2025/1/14 21:57:00
--  
可以了,我没有在代码之前添加\'\'\'