0

次のような単語のリストを用意してください。

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

たとえば、「グラム(g)」の「g」を取得し、それを新しい文字列として薄暗くするなど、括弧内の単語をどのように取得するのか疑問に思っています。おそらく正規表現を使用していますか?

ありがとう。

4

3 に答える 3

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

于 2012-04-25T20:43:49.843 に答える
0

スペースで分割し、2 番目のトークンから括弧を削除できます (それらを空の文字列に置き換えることにより)。

正規表現もオプションであり、非常に単純です。そのパターンは次のとおりです。

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

つまり、単語、少なくとも 1 つのスペース、開き括弧、実際の正規表現の括弧で単語を検索し、最後に閉じ括弧を検索します。内側の括弧はキャプチャー括弧であり、単位 g、kg、lb を参照できます。

于 2012-04-25T22:13:04.170 に答える
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
于 2012-04-25T21:49:42.557 に答える