-1

私はこの文字列を持っています: "Cooper_Johnson-Biloxi-01-Maqueta_Completa_176.max" 問題は、それをこれらの変数に分割する必要があるということです:

  1. クライアント:「Cooper_Johnson」
  2. プロジェクト:「ビロキシ」
  3. 仕掛品番号:「01」
  4. シーン名:「Maqueta_Completa」
  5. 内部コピー:「176」

私は通常の文字列変数を介してそれを行う方法を知っています-文字の検索、除算などですが、そのようなものに正規表現を使用することを本当に学びたいです.誰かがこのパターンを書いてステップを説明する時間があるかどうか尋ねたいです.そのパターンのすべての部分を段階的に。

http://gskinner.com/RegExr/この RegEx テスター を使用しました。これは非常に優れた機能ですが、正規表現を使用するための知識が不足しています。また、正規表現に関するマニュアルをお勧めできますか? たぶん、最も簡単なレベルから上級レベルまでのチュートリアルですか?よろしくお願いします!

4

3 に答える 3

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) 
于 2013-06-25T19:00:38.427 に答える
0

伝説のRegexLibはどうですか。正規表現を見つけ、学び、チートする

于 2013-06-25T19:07:24.003 に答える
0

ここにいくつかの方向があります

http://www.RegexHero.comは、正規表現を文字列に対してテストするのに適した場所です。

C# Regex Sheetは、C# 正規表現のチート シート/ガイドです。

Dot Net Perlsは、C# で正規表現を始めるのに適した場所です。

正規表現の MSN ページ

(ただし、 String.Split() を使用すると、最後の2つを除いて、ほぼ正確に必要なものを得ることができます)

于 2013-06-25T19:01:10.633 に答える