Regex 用于查找三重管道(|)、双管道和单管道的VBScript正则表达式

Regex 用于查找三重管道(|)、双管道和单管道的VBScript正则表达式,regex,vb.net,vbscript,Regex,Vb.net,Vbscript,需要帮助构建一个VBScript正则表达式,该正则表达式检查三元组(| | | |)和| |和|),并以 例如:- Contacts ||| ||Position: |PosH | |Pos Cust ||Name: |Name H | |Name Cust || a1:-Contacts,a2:||Position: |PosH | |Pos Cust ||Name: |Name H | |Name Cust || b1:-Position:, b2:-Name: c1:PosH ,c2

需要帮助构建一个VBScript正则表达式,该正则表达式检查三元组(| | | |)和| |和|),并以 例如:-

Contacts ||| ||Position: |PosH | |Pos Cust ||Name: |Name H | |Name Cust || 

a1:-Contacts,a2:||Position: |PosH | |Pos Cust ||Name: |Name H | |Name Cust || 
b1:-Position:, b2:-Name:
c1:PosH ,c2: ,c3:Pos Cust 
只需使用Split():


(再加上一些Trim()s)

那么您需要帮助的地方在哪里呢?我需要输出显示为。在一个字符串中[]全部在三个(| | |)内第二个字符串带(| |)第三个字符串带(| |)第三个字符串带(|)。我需要一个正则表达式。我现在使用的Mid和Instr函数对我没有帮助。您可以做三次拆分la Ekkehard Horner的回答:一个带三个,一个带有两个,另一个带有一个管道字符作为分隔符。每次拆分后,从结果数组元素中剥离所有管道,并忽略所有空数组元素。这应该能满足你的需要。或者,你可以显示不适用于你的代码,我们会看到。如果你真的想使用正则表达式,请自己尝试一下,并在这里发布你的代码。对于我们所有人(包括您)来说,帮助您改进自己的解决方案要比为您提供一个全新的解决方案更有效率。@Horner我需要a1=Contacts a2=| Position:| PosH | | Pos Cust | Name:| Name H | Name Cust+1这样的输出,因为我懒于创建脚本,并使用直接命令提示符:)@Horner谢谢。问题已解决。
>> s = "Contacts ||| ||Position: |PosH | |Pos Cust ||Name: |Name H | |Name Cust ||"
>> a = Split(s, "|")
>> For i = 0 To UBound(a)
>>     WScript.Echo i, """" & a(i) & """"
>> Next
>>
0 "Contacts "
1 ""
2 ""
3 " "
4 ""
5 "Position: "
6 "PosH "
7 " "
8 "Pos Cust "
9 ""
10 "Name: "
11 "Name H "
12 " "
13 "Name Cust "
14 ""
15 ""
>> WScript.Echo "a1", """" & a(0) & """"
>> WScript.Echo "c3", """" & a(8) & """"
>>
a1 "Contacts "
c3 "Pos Cust "
>>