正则表达式查找引文

时间:2014-03-15 07:46:26

标签: c# .net regex

我正在尝试检查字符串是否是C#中带正则表达式的引号。

例如

string x = "The flora and fauna of Britain \"has been transported to almost every corner of the globe since colonial times\" (Plants and Animals of Britain, 1942: 8).;    
string y =  "Morris et al (2000: 47) state \"that the debate of these particular issues should be left to representative committees.\"";

x和y是两个引号,正则表达式(或替代解决方案)应该能够返回true。

我来了,但有一个小问题:

string pattern = @"([‘'""]([\w\W]+?)[)])|(([\w\W]+?)[(]([\w\W]+?)[’'""])";

还有其他选择吗?提前谢谢。

该项目是一个反抄袭的网络应用程序。应用程序发现这些字符串(引用)是从Web复制的。现在假设用户不想在搜索结果中包含这些引用,问题是如何做到这一点。

搜索结果存储在数据库中,我正在使用EF和linq:

var webSearches = _db.WebSearches.Where(x => x.SubmissionId == submissionId).GroupBy(x => x.PlagiarisedText).Select(x => x.FirstOrDefault())。OrderBy( x => x.Id);

我想通过不包括引号来过滤结果(plagiarisedText)。

感谢您的回复,我很感激。

3 个答案:

答案 0 :(得分:0)

使用\\\"

使用Regex.IsMatch()查找是否包含。

Console.WriteLine(Regex.IsMatch(x, "\\\""));// true if it contains ", otherwise false

答案 1 :(得分:0)

如果Regex不是必需项,则可以使用String函数:

 int first = str.IndexOf('"');
 int last = str.LastIndexOf('"');
 if (str.Substring(first, last - first) != string.Empty)
 {
      // true
 }

答案 2 :(得分:0)

如果第一个和最后一个字符都是" s时为真,那么您可以简单地使用以下正则表达式:

".*"