一般に、正規表現はグループの概念を利用します。グループは括弧で示します。
ので私は
は私が好きだろう(。)が好きです。 =
Sub Main()
Dim s As String = "I Like hats"
Dim rxstr As String = "I Like(.*)"
Dim m As Match = Regex.Match(s, rxstr)
Console.WriteLine(m.Groups(1))
End Sub
すべての文字*の意味など、多くのまたは先行する文字のいずれもが上記のコードは、のために働くと私のようにしており、「」として含めた後のすべての文字を印刷する文字列ます。空白にも一致します。
最初のrxがより制限的な何かを必要とする文字列の終わりと一致するので、2番目のケースはもっと面白いです。
Iと同様に(\ w +)と(\ + W):これはregexのより完全な治療のためにI Like then a space
と1つ以上の単語文字と、その後and
スペースとone or more word characters
Sub Main()
Dim s2 As String = "I Like hats and dogs"
Dim rxstr2 As String = "I Like (\w+) and (\w+)"
Dim m As Match = Regex.Match(s2, rxstr2)
Console.WriteLine("{0} : {1}", m.Groups(1), m.Groups(2))
End Sub
と一致しますが取ります素晴らしいチュートリアルを持っているこのサイトを見てください。
:ここ
は、あなたが一度に複数の部品を抽出するために、複数のグループを使用できるようになりますバージョンです。注意を払うのはワイルドカードの貪欲さだけです。 –
ありがとう、ちなみに、IgnoreCase Regex Optionをオンにした場合、ワイルドカードの値を元の方法で返す方法がありますか?例:「GeRmAnYが好き」は「GeRmAnY」を返します。 – Walker
デフォルトにする必要があります。 – rerun