gpt4 book ai didi

c# - 替换字符或序列列表中未包含的所有字符

转载 作者:行者123 更新时间:2023-11-30 21:46:02 25 4
gpt4 key购买 nike

我正在编写 C# 代码,该代码应将所有未知(未知 = 其他可用的)字符替换为我选择的一个字符(例如“?”)。可用字符可以是单个字符,或两个或多个字符的序列

例如:

Input string: AXBY@@CZ
Available characters or sequences: A, B, C, @@
Desired output: A?B?@@C?

其他例子:

Input string: AXBY@CZ
Available characters or sequences: A, B, C, @@
Desired output: A?B??C?

我想使用正则表达式来实现这一点。我最接近解决方案的是这样的正则表达式:

(?!@@|[ABC]).

但在这样的输入字符串示例中,它会导致错误的结果:

Input string: AXBY@@CZ
Result from above regex: A?B?@?C?
Instead of wanted by me: A?B?@@C?

我怎样才能实现我的目标?

最佳答案

Wiktor Stribiżew 暗示的示例:

var str = "AXBY@@CZ@A";
var matches = Regex.Matches(str, "@@|[ABC]").Cast<Match>();
var replaced = string.Join("?", matches.Select(x => x.Value));
Console.WriteLine(replaced);

DEMO

对于输入 AXBY@@CZ@A 返回 A?B?@@?C?A

请记住 Dmitry Bychenko 的提示。这个样本没有回答他的问题。

关于c# - 替换字符或序列列表中未包含的所有字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39574403/

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