次のような単語のリストを用意してください。
gram (g)
kilogram (kg)
pound (lb)
たとえば、「グラム(g)」の「g」を取得し、それを新しい文字列として薄暗くするなど、括弧内の単語をどのように取得するのか疑問に思っています。おそらく正規表現を使用していますか?
ありがとう。
分割機能を使う..
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
スペースで分割し、2 番目のトークンから括弧を削除できます (それらを空の文字列に置き換えることにより)。
正規表現もオプションであり、非常に単純です。そのパターンは次のとおりです。
\w+\s+\((\w+)\)
つまり、単語、少なくとも 1 つのスペース、開き括弧、実際の正規表現の括弧で単語を検索し、最後に閉じ括弧を検索します。内側の括弧はキャプチャー括弧であり、単位 g、kg、lb を参照できます。
正規表現の楽しみ (私はここの専門家ではありませんが、テスト済みで動作します)
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