繁体   English   中英

用“'”拆分字符串但不是“?” ”

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM