Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 正则表达式提取包含数字的单词_C#_Regex - Fatal编程技术网

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

C# 正则表达式提取包含数字的单词,c#,regex,C#,Regex,我需要提取包含数字的单词 例如: 输入-维特默路3909B。尼亚加拉瀑布。纽约14305 输出-3909B和14305您的意思是要提取数字单词: var matches = Regex.Matches(input, @"\d\w*"); foreach (Match match in matches) { var numWord = match.Value; // 3909B, etc. } 使用此正则表达式: \w*\d\w* 请看这里的操作:这是我能想到的最简单的正则表达

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

例如:

输入-维特默路3909B。尼亚加拉瀑布。纽约14305


输出-3909B和14305

您的意思是要提取数字单词:

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

foreach (Match match in matches) {
    var numWord = match.Value;    // 3909B, etc.
}
使用此正则表达式:

\w*\d\w*

请看这里的操作:

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

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

所以这将匹配您想要的单词,再加上它将匹配'abc123xyz'

基本表达式应为:


  • (?请陈述一个问题,而不是声明需要。您可能想将
    +
    更改为
    *
    ,或者您将不匹配单个数字;-)事实上,这更简单:
    \w*\d\w*
    @Joseph:但这不起同样的作用。它将只匹配
    14305
    @Cameron中的
    1
    ——真的吗?检查我答案中的链接@约瑟夫:哎呀!我忘了
    \w
    也匹配了数字:-)这些表达式不相等。@Joseph:正确。OP是否需要,可以解释;-)非常感谢,它很管用。。是的,我们必须在前面添加+\w。正确的正则表达式应为@“\w+\d+\w*”
    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; 
    }