按字符串拆分字符串,但跳过某些字符组合

Adr*_*ica 4 javascript c# string split

假设我有一个类似于此形式的字符串:

"First/Second//Third/Fourth"(注意Second和之间的双斜线Third)

我希望能够将此字符串拆分为以下子字符串"First", "Second//Third", "Fourth".基本上,我想要的是通过char(在这种情况下/)分割字符串,但不是通过char的两倍(在这种情况下//).我虽然在很多方面,但无法让它发挥作用.

我可以在C#和/或JavaScript中使用解决方案.

谢谢!

编辑:我想要一个简单的解决方案.我已经想过用char解析字符串char,但是在我的实际使用中这太复杂了.

Iva*_*n G 9

试试这个C#解决方案,它使用正面lookbehind和积极前瞻:

        string s = @"First/Second//Third/Fourth";
        var values = Regex.Split(s, @"(?<=[^/])/(?=[^/])", RegexOptions.None);
Run Code Online (Sandbox Code Playgroud)

它说:分隔符/前面是除了/后面跟任何字符的任何字符/.

这是另一个更短的版本,它使用负面的lookbehind和lookahead:

        var values = Regex.Split(s, @"(?<!/)/(?!/)", RegexOptions.None);
Run Code Online (Sandbox Code Playgroud)

这说:分隔符/不在前面,/而不是后面跟着/

你可以在这里找到更多关于'lookarounds'的信息.


Roa*_*ump 5

在.NET Regex中,您可以使用否定断言来执行此操作.(?<!/)/(?!/)将工作.使用Regex.Split方法.