通过使用正则表达式

时间:2017-03-22 12:45:44

标签: c# regex

我无法在带有正则表达式的文件中获得匹配的内容。 我的要求是用户在文本框1中提供一些文本,在文本框2中提供一些文本。 正则表达式方法应该通过组合文本框中的两个文本来搜索文件。 截至目前,我能够找到用户提供的单一搜索匹配。

以下是代码:

private Regex R = null;

public void GetFileInfo(string textbox1val)
{
   if (this.R.IsMatch(text))
   {
      // my other code goes here....
   }
}

//on button click I am passing textbox text to regex and  to GetFileInfomethod
private void button1_Click(object sender, EventArgs e)
{        
   this.R = new Regex(textbox1.Text);
   GetFileInfo(textbox1.Text);
}

请帮助我解决这个问题,提前感谢您的帮助。

此致 Aditya.J

1 个答案:

答案 0 :(得分:1)

如果文本框包含要搜索的确切文本(如文本说明所示)而不是正则表达式(尽管代码示例),您的正则表达式初始化可能是

this.R = new Regex(string.Format("{0}|{1}",
    Regex.Escape(textbox1.Text), Regex.Escape(textbox2.Text)));

如果只找到一个用户提供的字符串,那么

this.R = new Regex(string.Format("^(?=.*{0})(?=.*{1})",
    Regex.Escape(textbox1.Text), Regex.Escape(textbox2.Text)));

如果在文件中找到了两个用户提供的字符串。

请注意Regex.Escape以转义用户可能输入的任何正则表达式特殊字符。

第一个正则表达式是一个简单的alternation

第二个正则表达式使用positive lookbehinds,并解释了使用过的构造here