2012-04-25 45 views
0

好吧,我有這個字符串。如何確定動態文本中子字符的計數?

下一頁:准尉2級
21202/33000
21202/33000

這是我從文字的長長的東西得到一個子。現在「Warrent Officer Grade 2」以及數字可以是動態的(我從網頁加載這些變量)如果數字中有一個或數百個,它不會追加0,所以exp不到一千像「478」而不是00,478。

現在我的問題是如何獲得「准尉二級」?我已經有這個

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

但我怎麼會幫助確定獲得軍銜計數?或者會創建一個所有級別的陣列和每個級別的長度很簡單嗎?

+0

文本實際上是在多行上嗎?什麼是行分隔符?還有什麼其他文字可以包含「下一個:」在某行的中間位置?我懷疑你會想在將*文字分成幾行之前將其分割成幾行...... – 2012-04-25 07:18:11

+0

如何按行分割它?沒有我知道的字符,雖然這代表了一個線分隔符 – ThatBenderGuy 2012-04-25 07:42:04

+0

那麼你從哪裏得到它?如果它是一個文件,有很多方法可以很容易地完成。否則,如果你只*將它作爲一個字符串,你可以創建一個StringReader並調用'ReadLine'例如...基本上,我們需要更多的信息。 – 2012-04-25 08:16:37

回答

2

您可以使用正則表達式搜索的名稱和級別,例如

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

將匹配開始Next:所有行隨後的名稱,Grade字和水平。 namelevel組的捕獲的值可以在以後檢索

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

或修改你想要的方式。

正則表達式操場:Derek Slager's A Better .NET Regular Expression Tester

+0

經過如此多的排名,雖然不再按檔次 – ThatBenderGuy 2012-04-25 07:41:15

+0

確定,然後修改正則表達式以適應您的需求 – 2012-04-25 07:43:26

+0

我不明白如何去做。我討厭正則表達式,總是對我沒有意義。例如,我的理解是,它會查找「Next:」和「Grade」....除了C#不喜歡'new Regex'。它說**找不到類型或命名空間'正則表達式'** – ThatBenderGuy 2012-04-25 08:08:41

相關問題