gpt4 book ai didi

regex - 用 "' "but NOT "?' "拆分字符串

转载 作者:行者123 更新时间:2023-12-05 00:55:56 26 4
gpt4 key购买 nike

我想在 ' 处分割一个字符串字符存在 除非 它前面有一个问号( ?' ) - 在这种情况下我 不要想 split 。
这样做的最佳方法是什么?
我是这样拆分的(如果分隔符是一个字符):

message.Split(New Char() {"'"C}) 

如果它是一个字符串:
message.Split(New String() {"break"}, StringSplitOptions.None)  

然后我是否必须测试给定数组中的每个项目以查看它是否以 ? 结尾? char,然后再次连接字符串 - 这似乎不是最佳解决方案..?
您是否必须制作正则表达式,您将如何在 vb.net 中做到这一点?

最佳答案

您将需要一个 Regex.Split(?<!\?)'正则表达式:

Regex.Split(message, "(?<!\?)'")

regex demo
(?<!\?)如果文字 ?,则负向后视将导致匹配失败出现在单个撇号的右侧。

在 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

enter image description here

关于regex - 用 "' "but NOT "?' "拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37269759/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com