2012-04-25 5 views

答えて

4

あなたはC#開発者のようですので、最初に一致するグループを使用して同じ引用符で閉じられるようにすることができます(したがってphrase="Don't forget apostrophes"をサポートします)。

Regex regex1 = new Regex(@"=(?:(['""])(.*?)\1|.*)"); 

string text = @" 
name=""don't forget me"" 
name='sometext' 
name='sometext' 
name=sometext 
"; 

foreach (Match m in regex1.Matches(text)) 
    Console.WriteLine (m.Groups[2].Value); 
1

私はseparatly 3例を指定するには、OR演算子|を使用します。

('[^'"]*')|("[^'"]*")|([^'"]*) 

正規表現に応じて、使用している方言では、OR演算子で区切られた一致しないグループを定義する必要があります。単語[^'"]*の一致するグループ。

+0

でcatted $ 2 |( "[^'] * ")|([^ '"] *) – Uri

0

「空自名=」の後に何ができるかを知ることがなければ、終わりを区切るその空白または何も
を前提としています。

name= 
(?: 
    (['"])((?:(?!\1).)*)\1 # (1,2) 
| (\S*)      # (3) 
) 

回答(* '[^'] ')$ 3

関連する問題