我正在过滤评论。我想像这样替换字符串:
llllolllllllllllooooooooooooouuuuuuuuuuuddddddddddddddllllollllllllllllloooooooooooooooooouuuuuuuuuuuuuuuuuuddddddddddddddllllollllllllllllloooooooooooooooooouuuuuuuuuuuuuuuuuuddddddddddddddllllollllllllllllloooooooooooouuuuuuuuuuuuuuuuudddddddddddddd
有两个字:lol loud
字符串:
cuytwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
with:cuytw
这样的字符串:
hyyuyuyuyuyuyuyuyuyuyuyuyuyu
with:hyu
但不能修改像look,geek这样的字符串。 有没有办法用C#中的单个正则表达式来实现这个目的?
答案 0 :(得分:1)
我不确定如何使用RegEx来解决这个问题,但是这里有一个替代方案可以说更容易理解。 *
假设您只想按顺序返回包含输入的不同字母的字符串,您可以使用GroupBy
:
private static string filterString(string input)
{
var groups = input.GroupBy(c => c);
var output = new string(groups.Select(g => g.Key).ToArray());
return output;
}
通行证:
loud
llllolllllllllllooooooooooooouuuuuuuuuuuddddddddddddddllllollllllllllllloooooooooooooooooouuuuuuuuuuuuuuuuuuddddddddddddddllllollllllllllllloooooooooooooooooouuuuuuuuuuuuuuuuuuddddddddddddddllllollllllllllllloooooooooooouuuuuuuuuuuuuuuuudddddddddddddd
cuytw
cuytwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
hyu
hyyuyuyuyuyuyuyuyuyuyuyuyuyu
故障:
lok
look
gek
geek
* 在第二次阅读时,您希望仅保留look
和geek
之类的字词;这是部分答案。
答案 1 :(得分:1)
我想我可以断然回答这个问题。
由于您的输入和输出要求,这绝对不能用RegEx
甚至标准代码完成,至少没有某种字典和算法可以尝试减少合法单词的排列检查中的双精度。
结果(充其量)会为您提供一系列可能非互斥的无意义单词和带有双打的合法单词的组合。
事实上,id远远超出你当前的要求而没有 对规则,输入和输出的额外特异性 一般来说是不可能的,只能按照你给出的案件的面值来看待