正则表达式 - 以文本字符后的所有数字字符

问题描述:

给定格式为字符串:XXX999999v99(其中X是任何字母字符,v​​是任何数字字符,v是字母v字符)如何获得正则表达式以匹配v后的数字字符?到目前为止,我已经有'V \ D \ D',其中包括V,但理想情况下,我只想数字部分。正则表达式 - 以文本字符后的所有数字字符

顺便说一下,有谁知道一个工具,你可以在其中指定一个字符串进行匹配并生成正则表达式?修改现有的正则表达式是一回事,但我发现从头开始痛苦!

编辑:重新阅读这个问题我意识到它看起来像一个家庭作业!不过,我可以向你保证它不是,我试图匹配的字符串代表附加到产品代码的产品版本。当前的代码使用各种各样的子字符串表达式来检索版本部分。

你可以试试:

v(\d+)$ 
  • v:匹配字面v
  • \d:一个数字
  • \d+:一个或多个数字。
  • ():分组还记得 匹配的部分,可用于 后来
  • $:线锚结束
+0

一些付费节目当我尝试这个比赛包括V字。是否有可能删除这个,只是返回数字部分?感谢回复。 – Simon 2010-03-23 16:51:16

+0

@Simon:当正则表达式找到匹配项时,第一组总是包含匹配正则表达式的完整字符串。如果你只需要获取被捕获的部分,你应该检查第二组。 – 2010-03-23 16:53:46

+0

Duh,刚刚意识到 - 从正则表达式中移除v char! – Simon 2010-03-23 16:54:54

你需要使用一个捕获组:

Regex.Match("XXX999999v99",@"v(\d+)").Groups[1].Value 
+0

小心,如果原始字符串中没有匹配项,则此代码在尝试访问组[1]时会引发异常。 – 2010-03-23 16:48:58

有一些用于正则表达式测试的免费工具。

尝试:regex powertoy

或:RegExr

也有像regex buddy

+0

我一直在使用RegExr的在线版本,但我觉得很难与之合作! – Simon 2010-03-23 16:53:19