正则表达式在C#中的文本文件中查找特定的单词?

问题描述:

我已经编写了一个控制台应用程序,该应用程序读入充满数据的文本文件。正则表达式在C#中的文本文件中查找特定的单词?

我不得不从它提取任何电话号码,并把它们放到结果文件中。

我用了几个正则表达式的这样做是为了掩盖电话号码的几种不同的格式,即英国,美国,国际等

下面是我用一个的例子 -

string sPattern = "^\\d{3}-\\d{3}-\\d{4}$"; 

这看起来对于以下格式的电话号码 - 123-456-7890

我的问题是,我现在想写一个RegEx,查找关键字单词与数字相符。

E.g.如果我读取数据文件,我希望它找到关键词“白色”和“汽车”。

然后把它们放到结果文件中。

有没有这样做的方法?

+0

考虑使用正则表达式的,若上述条件,并命名为匹配捕获。将不同的项目放入指定的捕获和C#端检查以查看指定的匹配捕获是否不为null并进行适当处理。我在我的博客文章[正则表达式和如果有条件](http://omegacoder.com/?p=56)上讨论if条件。 HTH – OmegaMan 2011-04-17 01:36:31

尝试Regex.Matches():

string pattern = "car"; 
Regex rx = new Regex(pattern, RegexOptions.None); 
MatchCollection mc = rx.Matches(inputText); 

foreach (Match m in mc) 
{ 
    Console.WriteLine(m.Value); 
} 
+0

良好的输入只有当我尝试实现它时,它表示RegexOptions是一种被用作变量的类型,因此无法运行。 – Ebikeneser 2011-04-15 10:49:45

+0

是的,那是无效的。 @Antoine,你的意思是'RegexOptions.IgnoreCase'? – 2011-04-15 10:54:36

+0

RegexOptions只是一个占位符,表示您可以指定某些选项。这不是强制性的,所以你可以指定模式。但是,如果您需要它们,请查看http://msdn.microsoft.com/zh-CN/library/system.text.regularexpressions.regexoptions.aspx。 – Antoine 2011-04-15 11:00:29

你正在寻找的方法是:

System.Text.RegularExpressions.Regex.IsMatch(string input. string pattern)

这medhod表示如果正则表达式查找中输入字符串匹配。如果匹配则返回true,否则返回false

http://msdn.microsoft.com/en-us/library/ms228595%28v=VS.100%29.aspx第一个例子有你所需要的。

只需使用由单词边界分隔的单词;

string sPattern = @"\bKeyword\b"; 

http://www.regular-expressions.info/wordboundaries.html