1, 2 我想添加一个异常(exception)。仅在-6ren">
gpt4 book ai didi

c# - 正则表达式 .net 拆分

转载 作者:行者123 更新时间:2023-11-30 17:08:53 24 4
gpt4 key购买 nike

我可以根据 2 个空格将一个字符串分成两个:

string Line = "1  2";

Regex.Split(Line, " ");

=> 1, 2

我想添加一个异常(exception)。仅在“未被 [ ] 包围”时拆分,如本例所示。

string Line = "1  2  [1  2]";

Regex.Split(Line, " ");

=> 1, 2, [1 2]

我可以通过正则表达式轻松实现吗?顺便说一下,我使用 .NET。

最佳答案

您可以使用前瞻,断言在下一个打开 [ 或字符串结尾之前没有关闭 ]:

Regex.Split(Line, @"[ ]+(?![^\[\]]*\])");

如果你有嵌套的 [...] 结构,这会让你失败。请注意,前瞻不是实际匹配的一部分,它只是检查后面的内容而不消耗任何内容。在前瞻中,我使用了 [^\[\]],这是一个否定字符类,匹配除任何类型的方括号之外的任何字符。

另请注意,这会拆分为 1 个或多个空格。如果您希望至少需要两个,请将 [ ]+ 替换为 [ ]{2,},如果您只需要两个,请将 [ ]{2} 替换为 [ ]+/.

Further reading on lookarounds.

关于c# - 正则表达式 .net 拆分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13419803/

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