正则表达式提取包含数字的单词

时间:2012-01-26 04:57:50

标签: c# regex

我需要提取包含数字的单词。

前: -

输入 - 3909B Witmer Road。尼亚加拉瀑布。纽约14305

输出 - 3909B和14305

4 个答案:

答案 0 :(得分:10)

使用此正则表达式:

\w*\d\w*

在此处查看:[{3}}

答案 1 :(得分:1)

基本表达应该是:

  1. (?< = ^ |)(?= [^] * \ d)[^] +

    • 或 -
  2. (\ W * \ d [\ W \ d] +)

  3. 并在C#中使用它:

    var matches = Regex.Matches(input, @"(\w*\d[\w\d]+)");
    
    foreach (Match match in matches){
           var word = match.Value; 
    }
    
    ...
    
    var matches = Regex.Matches(input, @"(?<=^| )(?=[^ ]*\d)[^ ]+");
    
    foreach (Match match in matches){
        var word = match.Value; 
    }
    

答案 2 :(得分:0)

你的意思是你想提取数字词:

var matches = Regex.Matches(input, @"\d\w*");

foreach (Match match in matches) {
    var numWord = match.Value;    // 3909B, etc.
}

答案 3 :(得分:0)

这是我能想到的最简单的正则表达式,它可以处理混合了字母和数字的单词:

(\w*\d[\w\d]+)

所以这会匹配你想要的单词,加上它会匹配'abc123xyz'。 Try it yourself.