【问题标题】:VBScript select substring after last occurrence of "|"VBScript 在最后一次出现“|”后选择子字符串
【发布时间】:2014-12-03 02:57:11
【问题描述】:

我有这个字符串:

TEST|TEST1|TEST3|TEST4|TEST5|TEST6|TEST7|TEST8|

我需要使用 VBS 选择 TEST8。有没有比使用MID/INSTR 更好的方法?例如,直接从右到左只选择字符 UNTIL |

PS.:我只有这些功能可用:

ASCII
字符
相比 数字文本 格式
InStr
案例
伦 左
LTrim
中 对
修剪
修剪
UCase

【问题讨论】:

  • 您有 InStr,但没有 InStrRev?这是某种共同核心的东西吗?
  • 很遗憾我没有 InStrRev 可用
  • 一个非常丑陋的场景是循环从右侧读取一个字符,直到您点击分隔符,然后获取该值的右侧。假设您也被允许使用循环构造,它会使用您可以使用的所有功能。您的功能限制令人费解。你能解释一下它们为什么存在吗?
  • @Andrew 我正在使用一个自定义应用程序,它实现了一些 VBS 功能。我不知道并非所有功能都可用,所以我很抱歉。我不能有循环我只能有 IF 语句。
  • 如果您不能使用Split,那么InStrMid 的组合是您的最佳选择,AFAICS。

标签: vbscript


【解决方案1】:

使用Split(),如果您的数据是一个字符串,其部分由一个简单的分隔符分隔;使用UBound() 以灵活的方式获取最后一个元素:

>> s = "TEST|TEST1|TEST3|TEST4|TEST5|TEST6|TEST7|TEST8"
>> a = Split(s, "|")
>> WScript.Echo a(Ubound(a))
>>
TEST8

【讨论】:

  • 感谢您的回答。不幸的是,我不能按照问题中的评论使用 SPLIT。
猜你喜欢
  • 2023-02-04
  • 2015-05-11
  • 2021-08-22
  • 2012-06-05
  • 1970-01-01
  • 2013-09-11
  • 1970-01-01
  • 1970-01-01
  • 2012-03-17
相关资源
最近更新 更多