正規表現について質問です。

タグの編集
投稿者 SCOP  (社会人) 投稿日時 2011/3/15 08:45:39
yという文字列を抜き出したいとします。

ある文書では z="x=y"のようになっており、ある文書では x="y"
のようになっています。
x=yのときもあればx="y"のときもある、ということです。

このようなyを抜き出すにはどのように表現すればいいのでしょうか。
投稿者 shu  (社会人) 投稿日時 2011/3/15 09:09:17
抜き出すというのがどういうことかいまいち分かりません。

Dim str1 as String = "z=""x=y"""
Dim str2 as String = "x=""y"""

str1.Indexof("y") => 5
str2.Indexof("y") => 3

となります。"y"が含まれていればIndexofの結果は0以上
含まれていなければ-1です。


とり除くということであればstr1.Replace("y", "")となります。



投稿者 SCOP  (社会人) 投稿日時 2011/3/15 12:51:19
shuさんご回答有難うございます。
書き方が悪かったです。

再度書き直します。

ある文書では
foo = "bar = y"

また別のある文書では
bar = "y"
のようになっているときがあります。
この y は一定の値を取る物ではなく、「A」のときもあれば「B」のときもあります。

foo = "bar = A"
foo = "bar = B"
bar = "A"
bar = "B"

上のような場合でもすべてyに値するところだけを正規表現で表現したいです。
投稿者 shu  (社会人) 投稿日時 2011/3/15 13:33:18
        Dim reg As New System.Text.RegularExpressions.Regex("bar = (""(?<VAL>.*?)""|(?<VAL>.*?)"")")

        Dim m = reg.Match(TextBox1.Text)
        If m.Success Then
            Console.WriteLine(m.Groups("VAL"))
        End If


こんなんでどうでしょう?