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

时间:2011-04-15 10:09:06

标签: c# regex string

我写了一个控制台应用程序,它读入一个充满数据的文本文件。

我必须从中提取任何电话号码并将它们放入结果文件中。

我使用多个RegEx来覆盖几种不同格式的电话号码,即英国,美国,国际等。

这是我用过的一个例子 -

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

这将寻找以下格式的电话号码 - 123-456-7890

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

E.g。如果我读入数据文件,我希望它能找到关键词'White'和'Car'。

然后将它们放入结果文件中。

有没有这样做的方法?

3 个答案:

答案 0 :(得分:2)

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

string sPattern = @"\bKeyword\b";

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

答案 1 :(得分:1)

您正在寻找的方法是:

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第一个例子有你需要的东西。

答案 2 :(得分:1)

尝试使用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);
}