2009-05-29 9 views
2

私はコードの一部と一致する正規表現を作ろうとしましたが、成功しませんでした。 vs2008では式が機能しません。一致するソースがあるこのテキストを正規表現とどのように一致させることができますか?

/\*<parameters>\*/(?<value>[\r\n]*.*)/\*</parameters>\*/ 

/*<parameters>*/ 
@parameter blue 
,@parameter2 red 
,@parameter3 green 
,@parameter4 yellow /*</parameters>*/ 

またはそれ以上:

私はこの1つを作成しました

/*<parameters>*/ \r\n @parameter blue \r\n ,@parameter2 red \r\n ,@parameter3 green \r\n ,@parameter4 yellow /*</parameters>*/ 

誰も私を助けることができますか?あなたが正規表現「複数行」オプションをオンにした後

おかげで、 ロドリゴロボ

答えて

4

この正規表現を試してみてください:アレックスが言ったように、あなたがに単一行修飾子を使用することができます

0

あなたの正規表現は、あなたが指定したすべてのテキストと一致する必要があります。

+0

正規表現正規表現は=新しい正規表現(@、RegexOptions.Multiline "/ \ * \ * /( [\ Rの\ n] *)/ \ * \ * /?")。 マッチマッチ= regex.Match(scriptText); return match.Success それはfalseを返します。 –

+0

"Singleline"は、Multilineではなく、彼が必要とするオプションです。そして、 "[\ r \ n] *"部分は必要ありません。 –

1

以下は、トリックを行います:

また
/\*<parameters>\*/(.|\r|\n)*/\*</parameters>\*/ 

、あなたは試合自体から外側のトークンを除外したい場合:

(?<=/\*<parameters>\*/)(.|\r|\n)*(?=/\*</parameters>\*/) 
2

RegexOptions.Multilineのみ^$の意味を変更します - - .にも一致するようにするには、RegexOptions.Singlelineが必要です(私は自分自身に混乱しました;-)。

-1

私はあなたにこの質問のための魚を与えたくないので、Expressoと呼ばれるUltrapicoのこの無料ツール(登録あり)を試してみてください。

私はいくつかの時間Regexに遭遇し、Expressoはすべての機会にその日を保存しました。

0

/\*<parameters>\*/(?<value>[^/]*)/\*</parameters>\*/

実際のC#の正規表現パターンとの浮気のための良いツールがcode.google.com上の正規表現freetoolですドットが改行文字(\ rと\ n)に一致するようにします。また、インライン形式 - (?s) - を使用して、正規表現自体内で指定することもできます。

(?s)/*<parameters>*/(?<value>.*?)/*</parameters>*/
また、控えめな量限定子「 .*?」にも注意してください。これは、テキストに複数の潜在的な一致がある場合です。そうしないと、最初の <parameters>タグから最後の </parameters>タグまでが一致します。

関連する問題