C# 正则表达式提取包含数字的单词
我需要提取包含数字的单词 例如: 输入-维特默路3909B。尼亚加拉瀑布。纽约14305C# 正则表达式提取包含数字的单词,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您的意思是要提取数字单词:
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;
}