用于在c#中划分字符串的正则表达式模式

时间:2013-06-25 18:58:44

标签: c# regex

我有这个字符串:“Cooper_Johnson-Biloxi-01-Maqueta_Completa_176.max” 问题是我需要把它分成这些变量:

  1. 客户:“Cooper_Johnson”
  2. 项目:“Biloxi”
  3. WIP编号:“01”
  4. 场景名称:“Maqueta_Completa”
  5. 内部复制:“176”
  6. 我知道如何通过通常的字符串变量来做 - 找到字符,除法等等但我真的想学习使用正则表达式来做这些事情,我想问一下是否有人有时间为这个写一个模式并逐步描述该模式的每个部分。

    我使用http://gskinner.com/RegExr/这个RegEx测试器,这是一个非常酷的东西,但我缺乏正则表达式使用它的知识。您还可以推荐任何关于正则表达式的手册吗?也许一些教程从最简单到高级? 非常感谢提前!

3 个答案:

答案 0 :(得分:3)

您可以使用命名捕获:

@"^(?<client>[^-]+)-(?<project>[^-]+)-(?<WIP>\d+)-(?<sceneName>.*?)_(?<internalCopy>\d+)\.max$"

此模式中没有特殊内容:

[^-]   character class containing all characters but -

(?<toto>..) named capture (toto here)

^ $    anchors for begining and end of the string

.*?    all characters zero or more times (lazy quantifier) 

答案 1 :(得分:0)

这是一些方向

http://www.RegexHero.com是测试字符串正则表达式的好地方。

C# Regex Sheet是c#regex的备忘单/指南

Dot Net Perls这是从c#

开始使用正则表达式的好地方

MSN Page on Regex

(但你可以使用String.Split(),除了最后的2之外几乎完全有你想要的东西)

答案 2 :(得分:0)

传奇的RegexLib怎么样?查找,学习和欺骗正则表达式