VB 从字符串中取两个某特定字符之间的字符串

YC3354 2017-11-21 11:08:04
假设有字符串a,长度未知;
字符串a 中有特定字符“&”,个数未知;
现需要提取第一个"&"和第二个"&”之间的字符!
求解!!!
...全文
2614 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
YC3354 2017-12-01
  • 打赏
  • 举报
回复
可能是我的问题描述不够准确! 我需要处理的字符串为 数字英文字母/-& 混合的字符,长度也不会很长,所以"&"的数量 也不会太多! 最开始,我有用 类似 4 楼 bakw 的方法!! 但是我感觉代码不够简洁, 并且我的程序中 需要这样处理的地方只有一处, 故最后我采用了 2楼 Runnerchin 的方法!! 最后,还是非常感谢诸位的帮助!
脆皮大雪糕 2017-11-24
  • 打赏
  • 举报
回复
为毛要写万能代码,根据具体需求来不行么
舉杯邀明月 2017-11-23
  • 打赏
  • 举报
回复
引用 25 楼 zhao4zhong1 的回复:
[quote=引用 23 楼 Runnerchin 的回复:] [quote=引用 22 楼 zhao4zhong1 的回复:] 边界条件 输入格式检查 输出是否会导致乱码 …… 这些问题是码农永远的t [quote=引用 21 楼 bakw 的回复:] 我的标准答案都被无视了
万一字符串不是unicode编码,你的“标答”估计也有bug[/quote] Talk is cheap.[/quote] 比如HTML编码字符串:<&bug&>[/quote] 在VB6中,字符串就是字符串,哪管它什么“xx代码、xx转义”什么的! 当“传入”字符串内容是<&bug&>的时候, 难道你就觉得楼主需要的一定就是 "bug",而不是 lt; 么!!!
笨狗先飞 2017-11-23
  • 打赏
  • 举报
回复
引用 25 楼 zhao4zhong1 的回复:
[quote=引用 23 楼 Runnerchin 的回复:] [quote=引用 22 楼 zhao4zhong1 的回复:] 边界条件 输入格式检查 输出是否会导致乱码 …… 这些问题是码农永远的t [quote=引用 21 楼 bakw 的回复:] 我的标准答案都被无视了
万一字符串不是unicode编码,你的“标答”估计也有bug[/quote] Talk is cheap.[/quote] 比如HTML编码字符串:<&bug&>[/quote] 好吧,你赢了。
赵4老师 2017-11-23
  • 打赏
  • 举报
回复
引用 23 楼 Runnerchin 的回复:
[quote=引用 22 楼 zhao4zhong1 的回复:] 边界条件 输入格式检查 输出是否会导致乱码 …… 这些问题是码农永远的t [quote=引用 21 楼 bakw 的回复:] 我的标准答案都被无视了
万一字符串不是unicode编码,你的“标答”估计也有bug[/quote] Talk is cheap.[/quote] 比如HTML编码字符串:<&bug&>
of123 2017-11-23
  • 打赏
  • 举报
回复
引用 18 楼 zhao4zhong1 的回复:
“如果没有结束标志,那么起始标志后的整个的串都应看作匹配子串的一部分,虽然可能没有结束。” 只是用人的常识和智慧解决问题的权宜之计。 对于天生只懂逻辑严密的处女座电脑而言,可以认为是bug
如果将这样的串作为正常输入提交,那么有两种可能的协议许可: 1 对于最后的串,可以用串的结束标志来替代专用的结束字符,即最后的结束字符可省略。 2 如果将第二个 & 看作与后续无关内容的分隔符,当在存在后续无关内容时,它可以省略。 当然了,对于有强迫症的开发者,另当别论。他可以在输入时在最后加上这个无用的 &。
X-i-n 2017-11-23
  • 打赏
  • 举报
回复
引用 22 楼 zhao4zhong1 的回复:
边界条件 输入格式检查 输出是否会导致乱码 …… 这些问题是码农永远的t [quote=引用 21 楼 bakw 的回复:] 我的标准答案都被无视了
万一字符串不是unicode编码,你的“标答”估计也有bug[/quote] Talk is cheap.
赵4老师 2017-11-23
  • 打赏
  • 举报
回复
总而言之,想写一段程序就满足未来无穷的需求变化,是不可能的。
舉杯邀明月 2017-11-22
  • 打赏
  • 举报
回复
引用 12 楼 zhao4zhong1 的回复:
边界条件不是每个人都能想全的。
赵4老师 2017-11-22
  • 打赏
  • 举报
回复
边界条件不是每个人都能想全的。
舉杯邀明月 2017-11-22
  • 打赏
  • 举报
回复
引用 10 楼 zhao4zhong1 的回复:
万一第一个&和第二个&之间有4G个字符捏?! 不怕做不到;就怕想不到!! 各位领教了本ID“强词夺理”的优秀品质了吧。
你不仅是强词夺理,还是“信口开河”的高手! VB6是32位程序,理论上“最大内存地址空间容量”就只有4GB; 然而这“4GB地址空间”中,高2GB段默认是“系统保留空间”,这时最多“2GB空间”了;  即使通过更改配置参数,也最多能把“用户空间”扩展到3GB而已。 另外,“低64KB”是用户程序无法访问的,这样“理论极限可用地址空间容量”已经低于3GB了! VB6中,每个字符要占用2字节,而“数据空间”最大范围还达不到3GB,算下来最多只能“1.5GB个字符”了,   你如何给我整得出“4GB个字符”来!!!
赵4老师 2017-11-22
  • 打赏
  • 举报
回复
万一第一个&和第二个&之间有4G个字符捏?! 不怕做不到;就怕想不到!! 各位领教了本ID“强词夺理”的优秀品质了吧。
赵4老师 2017-11-22
  • 打赏
  • 举报
回复
Talk is cheap, show me the code!

赵4老师 2017-11-22
  • 打赏
  • 举报
回复
马后炮
舉杯邀明月 2017-11-22
  • 打赏
  • 举报
回复
引用 6 楼 zhao4zhong1 的回复:
Dim strData As String, strSubString() As String
     
    strData = "&BBBBB"
    strSubString = Split(strData, "&")
     
    If UBound(strSubString) >= 1 Then
        Debug.Print "["; strSubString(1); "]" ‘BBBBB ?
    End If
小心驶得万年船
这个有什么问题? 这方面的“问题”我在3楼中已经说过了。 如果必须是“两个&”,那么只要把条件中的 >=1 改成 >=2就行了。 当然也可以用Instr( )函数来判断一下字符串中是否至少有2个 &字符、并用Mid$( )函数截取出字符串。
赵4老师 2017-11-22
  • 打赏
  • 举报
回复
边界条件 输入格式检查 输出是否会导致乱码 …… 这些问题是码农永远的t
引用 21 楼 bakw 的回复:
我的标准答案都被无视了
万一字符串不是unicode编码,你的“标答”估计也有bug
赵4老师 2017-11-22
  • 打赏
  • 举报
回复
Dim strData As String, strSubString() As String
     
    strData = "&BBBBB"
    strSubString = Split(strData, "&")
     
    If UBound(strSubString) >= 1 Then
        Debug.Print "["; strSubString(1); "]" ‘BBBBB ?
    End If
小心驶得万年船
of123 2017-11-22
  • 打赏
  • 举报
回复
    Dim strData As String, strSubString() As String
    
    strData = "AAAA&myString&BBBBB"
    strSubString = Split(strData, "&")
    
    If UBound(strSubString) >= 1 Then
        Debug.Print strSubString(1)
    End If
笨狗先飞 2017-11-22
  • 打赏
  • 举报
回复
我的标准答案都被无视了
脆皮大雪糕 2017-11-22
  • 打赏
  • 举报
回复
一初学者问个问题,结果神仙打架
加载更多回复(10)

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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