2012-04-25 61 views
0

只要有詞,如清單:進去括號/拆分文本/括號

gram (g) 
kilogram (kg) 
pound (lb) 

只是想知道我怎麼會得到括號內。例如詞語「克獲得了「G」( g)「並將其作爲新字符串調暗。 可能使用正則表達式?

謝謝。

+0

這是一個家庭作業嗎? – 2012-04-25 21:17:33

回答

1

使用分割功能..

strArr = str.Split("(") ' splitting 'gram (g)' returns an array ["gram " , "g)"] index 0 and 1 
strArr2 = strArr[1].Split(")") ' splitting 'g)' returns an array ["g " ..] 

字符串在

strArr2[0] 

編輯

你想getAbbrev和getAbbrev2是陣列

嘗試

Dim getAbbrev As String() = Str.Split("(") 
Dim getAbbrev2 as String() = getAbbrev[1].Split(")") 

要做到這一點不聲明數組,你可以做

"gram (g)".Split("(")[1].Split(")")[0] 

但這是不可讀

編輯

你有一些很瑣碎的錯誤。我建議你先加強對物體和聲明的理解。然後你可以看看調用方法。我寧願你理解它,而不是把它交給你。重新閱讀您擁有的書或尋找基本教程。

Dim unit As String = 'make sure this is the actual string you are getting, not sure where you are supposed to get the string value from => ie grams (g) 

Dim getAbbrev As String() = unit.Split("(") 'use unit not Str - Str does not exist 
Dim getAbbrev2 As String() = getAbbrev[1].Split(")") 'As no as - case sensitive 

最後一行參考getAbbrev2,而不是使用正則表達式的未知abbrev2

+0

只需在括號內標記預期的標識符,例如「[1]」等。有關修復的任何想法? [http://i.imgur.com/SzX0m.png](http://i.imgur.com/SzX0m.png) 這就是我目前所擁有的。 – Deany 2012-04-25 21:35:53

0

樂趣(我真的不是專家在這裏,但測試和工程)

Imports System.Text.RegularExpressions 
..... 

Dim charsToTrim() As Char = { "("c, ")"c } 
Dim test as String = "gram (g)" + Environment.NewLine + 
     "kilogram (kg)" + Environment.NewLine + 
     "pound (lb)" 

Dim pattern as String = "\([a-zA-Z0-9]*\)" 
Dim r As Regex = new Regex(pattern, RegexOptions.IgnoreCase) 
Dim m As Match = r.Match(test) 
While(m.Success) 
    System.Diagnostics.Debug.WriteLine("Match" + "=" + m.Value.ToString()) 
    Dim tempText as String = m.Value.ToString().Trim(charsToTrim) 
    System.Diagnostics.Debug.WriteLine("String Trimmed" + "=" + tempText) 
    m = m.NextMatch() 
End While 
+0

而不是類'[a-zA-Z0-9]''更容易使用「任何不是右括號」的字符類:'[^)]'。這個更短,並且還允許像'$'這樣的符號出現在圓括號('Dollars($)')中。 – 2012-04-26 01:40:25

+0

@ Li-aungYip謝謝,正如我說的,我不是這裏的專家。我只是嘗試了一些從編寫代碼的日子就記住的東西,我只有一個簡單的文本編輯器。 :) – Steve 2012-04-26 07:13:12

+0

嘿,你的版本工作正常 - 我的建議只是拋光。 ;) – 2012-04-26 07:18:15

0

你可以在空間拆分並從第二個標記中刪除父元素(通過用空字符串替換它們)。

一個正則表達式也是一種選擇,而且是非常簡單的,它的模式是

\w+\s+\((\w+)\)

這意味着,一個字,那麼至少有一個空格,然後打開括號,然後在真正的正則表達式的括號你搜索一個詞,並最終收尾。內圓括號是捕捉括號,這可以指單位克,千克,磅。