2012-04-25 10 views
0

okだから私はこの文字列を持っています。動的テキストの部分文字列の数を調べるにはどうすればよいですか?

次へ:准尉2級
21202/33000
21202/33000

それは私がテキストの長いものから取得した部分文字列です。今では "Warrent Officer Grade 2"と同様に数字が動的になる可能性があります(私はこれらの変数をWebページからロードしています).1または数百に数がある場合、0を付加しないので、1000未満のexp 00,478ではなく「478」のようになります。

私の質問は、「令状2」を取得する方法です。私はすでにこの

int indexOfNext = myString.IndexOf("Next") + 6; 
//Below is what I need to obtain 
int count = 0; 
string newString = myString.Substring(indexOfNext, count); 

を持っていますが、どのように、私はランクを取得するためを決定するのに役立つでしょうか?または、すべてのランクと各ランクの長さの配列を作成するのは簡単ですか?

+0

は複数行に実際のテキストですか?行区切り記号とは何ですか?他のテキストは何ですか - それは行の途中のどこかに "次へ"を含むことができますか?私はあなたがこの* any *をする前に、テキストを行に分割したいと思っています... –

+0

どのように行単位で分割しますか?私が知っている文字はありませんが、それはラインセパレータを表しています – ThatBenderGuy

+0

まあどこから得ましたか?それがファイルの場合、非常に簡単に行う方法があります。そうでなければ、あなたが* String *としてそれを持っていれば、StringReaderを作成し、例えば 'ReadLine'を呼び出すことができます。基本的に、もっと情報が必要です。 –

答えて

2

あなたは、これがNext:で始まるすべての行と一致します

var regExp = new Regex(@"^Next: (?<name>[^\d]+) Grade (?<level>[\d]+)"); 

例えば名前とレベルを検索するための正規表現を使用することができますが、名前、Grade単語レベルで続きます。 namelevelグループのキャプチャされる値は、後に

var match = regExp.Match(input); 
var level = match.Groups["level"].Value; 

を取得したり、あなたがそれを望むようにそれを修正することができます。

正規表現の遊び場:Derek Slager's A Better .NET Regular Expression Tester

+0

多くのランクの後は、もはやグレードが – ThatBenderGuy

+0

になりますが、あなたのニーズに合わせて正規表現を変更してください。 –

+0

私はそれを手に入れません。私は正規表現が嫌い、常に私には意味をなさない。例えば、私はあなたの中で「Next:」と「Grade」を探していることを理解しています.C#のほかに 'new Regex'は好きではありません。それは**タイプまたは名前空間 '正規表現は見つかりませんでした** – ThatBenderGuy

関連する問題