我需要处理一个脚本,该脚本基本上使用剪贴板并将其全部转换为小写,除非有三个或更多连续大写字母。
因此,我只需要正则表达式来匹配所有内容,所以我可以应用一个过程将其转换为小写。
例如,在句子中(这个例子很愚蠢,但是对于理解这个想法很有用):
如果PETER这么说,应该告诉那个人闭嘴,而不是Mary。 -NO NO NO!
正则表达式应匹配除“ SHUT”和“ PETER”部分以外的所有内容,即,其中一个或两个大写字母的部分,但当其中三个或更多时不匹配。
我一直在尝试不同的方法,但是都留下了字母。除找到三个连续的大写字母外,所有字符都应匹配。你能帮忙吗?
我的正则表达式是.NET 2.0-4.5。
谢谢!
您可以尝试匹配否定大小写并将其从字符串中删除。类似于:
([A-Z]{3,})
正则表达式demo.
C#中的实现:
using System.IO;
using System;
using System.Text.RegularExpressions;
class Program
{
static void Main()
{
String field = "The man should be told to SHUT up if PETER said so, not Mary. -NO NO NO!";
String contents = Regex.Replace(field, @"([A-Z]{3,})", "");
Console.WriteLine(contents);
}
// SHUT and PETER is replaced from the output string.
}
您可以找到上述实现here.的示例运行>