[英]Splitting String with “ ' ” but NOT “ ?' ”
我想将一个字符串分解等。无论在'
除非在它前面一个问号字符的情况下( ?'
) -在这种情况下我不想分裂。
这样做的最佳方法是什么?
我这样分裂(如果分隔符是Char):
message.Split(New Char() {"'"C})
如果它是一个字符串:
message.Split(New String() {"break"}, StringSplitOptions.None)
那么我是否必须测试给定数组中的每个项目以查看它是否以?
结尾?
char,然后再次连接字符串 - 这似乎不是最佳解决方案..?
你必须做一个正则表达式,你会如何在vb.net中做到这一点?
你需要一个带有(?<!\\?)'
正则表达式的Regex.Split
:
Regex.Split(message, "(?<!\?)'")
请参阅正则表达式演示
如果是文字的话, (?<!\\?)
负面的后视将会使比赛失败?
出现在单撇号的左侧。
在VB.NET中,您可以使用Linq删除使用此正则表达式拆分获得的任何空字符串:
Dim message As String = "'sss?'ss'"
Dim my_result() As String = Regex.Split(message, "(?<!\?)'") _
.Where(Function(strn As String) String.IsNullOrWhiteSpace(strn) = False) _
.ToArray()
Console.WriteLine(String.Join(", ", my_result))
' => sss?'ss
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.