0

申し訳ありませんが、私は正規表現が苦手ですが、文字列 ".wim" で終わり、その後に何もない任意の文字列に一致するものを見つけようとしています。たとえば、次の文字列があるとします。

Vista32Sp2_SL-56-GB3.wim
Vista64Sp2_SL-56-GB3.wim
Win864_SL-IN-869.wim.old0613

正規表現を最初の 2 つには一致させたいが、最後のものには一致させたくない。文字列は、それを含むだけでなく、.wim で終了する必要があります。正規表現での私の最初の試みはでし^.*\.wim$たが、それをオンラインの正規表現テスターに​​入れましたが、うまくいきませんでした。

4

4 に答える 4

0

これを試すことができます:

(?<=\s|^)\S+\.wim(?=\s|$)

(これをphp、rubyで使用することが目的の場合、javascriptまたはVBscriptでは機能しません)

VBscript でこれを使用する場合、結果はキャプチャ グループにあります。

(?:\s|^)(\S+\.wim)(?:\s|$)

また

(?:\s|^)(\S+\.wim)(?=\s|$)
于 2013-06-12T17:55:32.233 に答える
0

次の正規表現を試してください。

^.*?\.wim$

.*?貪欲でないので一致しません.wim

于 2013-06-12T17:43:40.077 に答える
-1

あなたが試したことはうまくいきます:

^.*\.wim$

www.regextester.com でこれを試してみましたが、うまくいきました。デフォルトでは、そのサイトでは、一致するテキストは「置換」に入力したものに置き換えられ、「Win864_SL-IN-869.wim.old0613」のみが残ります。これで問題ありません。

regexpalを試すことができます。私はしばしばそれがより便利だと思います。

正規表現エンジンによっては、".*" は貪欲に (".wim" を含めて) 一致する可能性があるため、".wim" に一致させようとするときには、既にそれを超えています。そのような場合、ジェリーの答えはより適切です(PCRE互換の表現で、私は信じています)

于 2013-06-12T17:41:17.777 に答える