使用regex和C#标识另一个字符串中不存在的字符串

时间:2018-03-30 19:01:20

标签: c# regex visual-studio-2015

我正在尝试捕获不包含在另一个字符串中的字符串。

string searchedString = " This is my search string";
string subsetofSearchedString = "This is my";

我的输出应为“搜索字符串”。我想只使用正则表达式,以便我可以处理复杂的字符串。

以下是我到目前为止尝试的代码,但我没有成功。

 Match match = new Regex(subsetofSearchedString ).Match(searchedString );
 if (!string.IsNullOrWhiteSpace(match.Value))
 {
      UnmatchedString= UnmatchedString.Replace(match.Value, string.Empty);
 }

更新:以上代码不适用于以下文本。

text1 = 'Property Damage (2015 ACURA)' Exposure Added Automatically for IP:Claimant DriverLoss Reserve Line :Property DamageReserve Amount $ : STATIP Role(s): Owner, DriverExposure Owner :Jaimee Watson_csr Author:
text2 = 'Property Damage (2015 ACURA)' Exposure Added Automatically for IP:Claimant DriverLoss Reserve Line :Property DamageReserve Amount $ : STATIP Role(s): Owner, Driver

Match match = new Regex(text2).Match(text1);

2 个答案:

答案 0 :(得分:2)

您可以使用Regex.Split

var ans = Regex.Split(searchedString, subsetofSearchedString);

如果您希望将答案作为单个字符串减去子集,则可以加入:

var ansjoined = String.Join("", ans);

替换为String.Empty也可以:

var ans = Regex.Replace(searchedString, subsetOfSearchedString, String.Empty);

答案 1 :(得分:0)

答案:

正则表达式不适合我,因为我的字符串中存在元字符。 Regex.Escape没有帮我比较。

String Contains就像魅力一样

if (text1.Contains(text2))
   {  
      status = TestResult.Pass;
      text1= text1.Replace(text2, string.Empty);
   }