gpt4 book ai didi

c# - 正则表达式 - 避免字符

转载 作者:行者123 更新时间:2023-11-30 14:41:18 26 4
gpt4 key购买 nike

在 C# 中使用一些正则表达式时,我遇到了以下问题:

考虑这个简单的字符串:~0~这是一个简单的文本~POP~NIZ~0~0~

我想选择两个“~”之间的任何字符串,其中包含超过 3 个字符,当然“~”除外。在我的示例中,将是:

这是一个简单的文本

我可以做类似的东西:([\w]|[\d]|.|\,.................){4-500}

我会以一个非常长的正则表达式结束,无法调试且不可读...

相反,我更愿意创建一个正则表达式,例如 “给我任何字符,但包含在‘~’和‘~’之间的‘~’除外”

我找不到正确使用 [^] 的方法!

我该怎么做?

提前致谢!

回答:我终于做到了:~[^~]{3,}~

它包含除“~”之外的所有内容,包含在两个“~”之间并且长度超过三个字符。

感谢您的回答!

最佳答案

如果您不介意从开始到结束可能有额外的批处理,它应该很简单:

[^~]{3,}

或者,您可以拆分并取长的:

var tokens = str.Split('~').Where(s => s.Length >= 3);

如果你确实想将字符限制在一个特定的集合中,你可以使用先行和后行来确保。这不会消耗波浪号,所以你会得到两个 ~123~abc~ 的匹配项(同样,你可以使用 [^~] 如果你对它感到满意):

(?<=~)[\w\d\s]{3,}(?=~)

关于c# - 正则表达式 - 避免字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4332807/

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