2016-11-26 1 views
0

私はすべてを検索し、これを理解することはできません。そのリストを除く、同様enclosuers内小なり大なり、アスタリスクがあり得ること先頭と末尾に2つの特定の文字で囲まれた文字列のすべてのインスタンスを検索

Dim VariableText As String = "Some text <* 

Dim Var1 as Integer = 5 

ResponseText = IIf(Var1 <= 2,Var1 * 5, iif(Var1 > 2, Var1 * 2, 0)).ToString(""0"") 

*> Some more text <* ResponseText = MsgBox(""TEST!"") *>" 

注意:私は、次のような複数行の文字列内のすべての一致を見つけるためにしようとしてきましたそれらの文字は機能しません。

私は多くの異なった正規表現の組み合わせを試してみましたが、私は唯一の「< *」非常に最初と最後の間のすべてを取り込むことができるように思われる「*>」私が望む何

がそれぞれをキャプチャすることです「< **>」で囲まれたセクションのうち、エンクロージャー内のテキストのみで作業することができます。たとえば、(これは私が見つけることができる最も近い正規表現式です):

Dim R as New Regex("(?<=<\*).*(?=\*>)", RegexOptions.SingleLine) 
Dim Coll as MatchCollection = R.Matches(VariableText) 
For Each M as Match in Coll 
    'Do something with each section 
Next 

私も同様に排他ブロックを試してみました:「(< = < \ *?)(?:< \ *)*?。 (?= \ *>) " しかし、それはどちらも動作しませんでした

これはRegexで可能かどうか知っていますか、ループ内の文字列を解析する必要がありますか?

答えて

0

以下を試してください。 *は貪欲で、最も長い文字列に一致するように試みます。*?を使用すると、最短の文字列と一致するように試みます。

(?<=<\*).*?(?=\*>) 
+0

ありがとうございました。 – Stephen

関連する問題