正则表达式 - 以文本字符后的所有数字字符
问题描述:
给定格式为字符串:XXX999999v99(其中X是任何字母字符,v是任何数字字符,v是字母v字符)如何获得正则表达式以匹配v后的数字字符?到目前为止,我已经有'V \ D \ D',其中包括V,但理想情况下,我只想数字部分。正则表达式 - 以文本字符后的所有数字字符
顺便说一下,有谁知道一个工具,你可以在其中指定一个字符串进行匹配并生成正则表达式?修改现有的正则表达式是一回事,但我发现从头开始痛苦!
编辑:重新阅读这个问题我意识到它看起来像一个家庭作业!不过,我可以向你保证它不是,我试图匹配的字符串代表附加到产品代码的产品版本。当前的代码使用各种各样的子字符串表达式来检索版本部分。
答
你可以试试:
v(\d+)$
-
v
:匹配字面v -
\d
:一个数字 -
\d+
:一个或多个数字。 -
()
:分组还记得 匹配的部分,可用于 后来 -
$
:线锚结束
答
你需要使用一个捕获组:
Regex.Match("XXX999999v99",@"v(\d+)").Groups[1].Value
+0
小心,如果原始字符串中没有匹配项,则此代码在尝试访问组[1]时会引发异常。 – 2010-03-23 16:48:58
一些付费节目当我尝试这个比赛包括V字。是否有可能删除这个,只是返回数字部分?感谢回复。 – Simon 2010-03-23 16:51:16
@Simon:当正则表达式找到匹配项时,第一组总是包含匹配正则表达式的完整字符串。如果你只需要获取被捕获的部分,你应该检查第二组。 – 2010-03-23 16:53:46
Duh,刚刚意识到 - 从正则表达式中移除v char! – Simon 2010-03-23 16:54:54