【发布时间】:2011-10-19 19:37:09
【问题描述】:
输入字符串“134.45sdfsf”传递给下面的语句
System.Text.RegularExpressions.Regex.Match(input, pattern).Success;
为以下模式返回true。
模式 = "[0-9]+"
模式 = "\\d+"
Q1) 我想,这到底是怎么回事!我只指定数字,而不是特殊字符或字母。那么我的模式有什么问题,如果我用上面的代码语句得到错误的返回值。
Q2) 一旦我得到正确的模式来匹配数字,我如何提取字符串中的所有数字?
假设现在我只想获取格式为"int.int^int" 的字符串中的整数(例如"11111.222^3333",在这种情况下,我想提取字符串"11111"、"222" 和"3333")。
有什么想法吗?
谢谢
【问题讨论】:
-
对于 q2,每个整数字符串都有一个匹配项
-
Java
Matcher.matches()方法按预期工作,但是 .NetMatch()函数返回与您的模式匹配的第一个 substring,Matches()函数返回“all”(虽然不是您可能期望的)与您的模式匹配的子字符串。您只需要使用所有答案中指定的^和$锚
标签: c# regex visual-studio-2010 pattern-matching