c#Regex删除少于3个字母的单词?

use*_*590 4 c# regex

关于正则表达式的任何想法都需要删除3个字母或更少的字母?所以它会发现"它是bbb猫老鼠帽子"等但不是"四,三,二".

Qta*_*tax 8

正则表达式匹配长度为1到3的单词\b\w{1,3}\b,将这些匹配替换为空字符串.

Regex re = new Regex(@"\b\w{1,3}\b");
var result = re.Replace(input, "");
Run Code Online (Sandbox Code Playgroud)

要删除可以使用的双空格:

Regex re = new Regex(@"\s*\b\w{1,3}\b\s*");
var result = re.Replace(input, " ");
Run Code Online (Sandbox Code Playgroud)

(虽然它会在字符串的开头/结尾留一个空格.)


Mat*_*vey 6

不一定需要正则表达式,可以通过简单的linq选择来完成.

string[] words = inputString.Split(' ');

var longWords = words.Where(x => x.Length > 3);

string outputString = String.Join(" ", longWords.ToArray());
Run Code Online (Sandbox Code Playgroud)

你可以在一行代码中做到这一点:

outputString = String.Join(" ", inputString.Split(' ').Where(x => x.Length > 3).ToArray());
Run Code Online (Sandbox Code Playgroud)