我想检查字符串是否包含列表中的单词或数字,并将其从字符串中删除。我想对找到的多个匹配项执行此操作。句子读这是01 02 03(01)(02)(03)no01 no02 no03测试我需要Regex.Replace删除只有充分01,02,03,内部没有换言之的人。这是(01)(02)(03)no01 no02 no03测试但它只会删除所有位置中匹配项列表中最后一项03的出现。这是01 02(01)(02)()no01 no02没有测试http://rextester.com/BCEXTJ37204C#List<string> filters = new List<string>();List<string> matches = new List<string>();string sentence = "This is a 01 02 03 (01) (02) (03) no01 no02 no03 test";string newSentence = string.Empty;// Create Filters Listfor (int i = 0; i < 101; i++){ filters.Add(string.Format("{0:00}", i)); // 01-100}// Find Matchesfor (int i = 0; i < filters.Count; i++){ // Add to Matches List if (sentence.Contains(filters[i])) { matches.Add(filters[i]); // will be 01, 02, 03 }}// Filter Sentencefor (int i = 0; i < matches.Count; i++){ newSentence = Regex.Replace(sentence, matches[i], "", RegexOptions.IgnoreCase);}// Display New SentenceConsole.WriteLine(newSentence);我尝试进行更改string.Format()以@"\b{0:00}\b"匹配整个单词,但这是行不通的。
2 回答
慕田峪4524236
TA贡献1875条经验 获得超5个赞
在代码中尝试以下正则表达式:
string sentence = "This is a 01 02 03 (01) (02) (03) no01 no02 no03 test";
var newSentence = Regex.Replace(sentence, @"\s\d+(?=\s)", string.Empty);
// Display New Sentence
Console.WriteLine(newSentence);
- 2 回答
- 0 关注
- 188 浏览
添加回答
举报
0/150
提交
取消