0

私は文字列の結果を拾うべき*正規表現を持っています:

入力文字列:

Vmid        Name                             File                           Guest OS       Version   Annotation
3      TinyCore Linux   [datastore1] TinyCore Linux/TinyCore Linux.vmx   otherLinuxGuest   vmx-08
4      Debain6          [datastore1] Debain6/Debain6.vmx                 ubuntu64Guest     vmx-08

正規表現:

[]][ A-Za-z /.]+.vmx [ ]

正規表現は、文字列の次の部分と一致します。

] TinyCore Linux/TinyCore Linux.vmx

しかし、これも一致する必要があります:

] Debain6/Debain6.vmx

私のコードは次のとおりです。

private void regexTest_Click(object sender, EventArgs e)
{
    Regex regex = new Regex("[]][ A-Za-z /.]+.vmx [ ]");
    MatchCollection match = regex.Matches(input);

    foreach (Match matchvalue in match)
    {
        MessageBox.Show(matchvalue.ToString());
    }
4

2 に答える 2

2

あなたは数字を失いました\d

あなたの正規表現:[]][\dA-Za-z /.]+.vmx [ ]

そして私のアップグレード\][\dA-Za-z\s/.]+\.vmx

于 2012-07-28T12:46:53.507 に答える
0

そのようなものを使用してみてください。次の式は、] と .vmx の間のすべてのタイプ文字に一致します。

\](.+?)\.vmx

または ][word]/[word].vmx のようなパターンの場合

\](.+)?\/(.+?)\.vmx

または一般的な (.) 特定の一致文字に置き換えられます

\]([a-z0-9A-Z-_\s\/]+)?\.vmx

http://gskinner.com/RegExr/から正規表現の出力を簡単にテストできます。

ここに画像の説明を入力

于 2012-07-28T12:52:58.877 に答える