我有一些由单词和数字构成的句子。我想要得到一个字符串,其中包含每个单词的第一个字符、所有数字和所有大写字母的单词。我尝试使用正则表达式,但问题是它不能匹配所有数字和所有大写字母的单词。
我的正则表达式在Regex101中。
我的解决方案在DotNetFiddle中。 代码:
我的正则表达式在Regex101中。
我的解决方案在DotNetFiddle中。 代码:
using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;
public class Program
{
public static void Main()
{
List<string> list = new List<string> {"Freestyle steel","Freestyle Alloy","Trekking steel uk","Single speed","5 speed","15 speed","3 Speed internal gear with 55 coaster","MTB steel","Junior MTB"};
foreach(string data in list)
{
string regex = @"(\b\w)|(\d+)";
var matches = Regex.Matches(data, regex, RegexOptions.Multiline);
string output = "";
foreach(Match item in matches)
{
output += item.Groups[1];
}
Console.WriteLine(output);
}
}
}
样例输入
自由式钢材
自由式合金
越野钢材英国
单速
5速
15速
内部3速带55后轮制动器
山地自行车钢材
少年山地自行车
样例输出
Fs
FA
Tsu
Ss
5s
15s
3Sigw55c
MTBs
JMTB
var regex = @"\d+|\b\w";
,然后output += item.Value.ToUpper();
。 - Wiktor Stribiżew\d+|\b([A-Z]+|\w)
。 - Jan