用于在c#中划分字符串的Regexp模式

本文关键字:Regexp 模式 字符串 划分 用于 | 更新日期: 2023-09-27 18:20:03

我有这个字符串:"Cooper_Johnson-Bioxi-01-Maqueta_Completa_176.max"问题是,我需要将其划分为以下变量:

  1. 客户:"Cooper_Johnson"
  2. 项目:"碧洛克西"
  3. 在制品编号:"01"
  4. 场景名称:"Maqueta_Completa"
  5. 内部副本:"176"

我知道如何通过常用的字符串变量(查找字符、除法等)来实现这一点,但我真的想学习使用正则表达式来处理这些事情,我想问是否有人有时间为这一个编写模式,并逐步描述该模式的每一部分。

我曾经http://gskinner.com/RegExr/这个RegEx测试仪,这真的很酷,但我缺乏使用RegEx的知识。你能推荐任何关于RegEx的手册吗?也许是一些从最简单到高级的教程?提前感谢!

用于在c#中划分字符串的Regexp模式

您可以使用命名捕获:

@"^(?<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) 

以下是的一些方向

http://www.RegexHero.com是针对字符串测试regex的好地方。

C#RegexSheet是C#regex的备忘单/指南

Dot-Net Perls这里是从c#中的regex开始的好地方

Regex 上的MSN页面

(但是您可以使用String.Splitt(),除了最后2个之外,几乎可以得到您想要的东西)

legendry RegexLib怎么样。查找、学习和作弊Regex