为了账号安全,请及时绑定邮箱和手机立即绑定

检查字符串是否包含列表中的数字,然后从字符串中删除该数字

检查字符串是否包含列表中的数字,然后从字符串中删除该数字

C#
泛舟湖上清波郎朗 2021-03-31 17:14:49
我想检查字符串是否包含列表中的单词或数字,并将其从字符串中删除。我想对找到的多个匹配项执行此操作。句子读这是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);


查看完整回答
反对 回复 2021-04-10
  • 2 回答
  • 0 关注
  • 188 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信