真正简单的正则表达式?

时间:2013-06-12 17:39:36

标签: regex vbscript

抱歉,我在正则表达式上很糟糕,但我试图找到一个匹配任何以字符串" .wim"结尾的字符串的字符串。没有别的东西。例如,给定以下字符串:

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

我希望我的正则表达式匹配前2个,但不是最后一个。该字符串必须以.wim结尾,而不仅仅包含它。我在正则表达式上的第一次尝试是^.*\.wim$,但是我把它放到了在线的Regex Tester中,它没有用。

4 个答案:

答案 0 :(得分:3)

如果您不需要捕获匹配字符串的内容,只需检查它是否匹配,则不需要^.*?;你所需要的只是:

\.wim$

答案 1 :(得分:0)

试试这个正则表达式:

^.*?\.wim$

.*?不正确,因此无法匹配.wim

答案 2 :(得分:0)

你可以试试这个:

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

(如果您的目标是使用php,ruby,不适用于javascript或VBscript)

对于VBscript使用它,结果在捕获组中:

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

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

答案 3 :(得分:-1)

您尝试过的作品:

^.*\.wim$

我在www.regextester.com上试过这个并且它有效。默认情况下,在该网站上,匹配的文本将替换为您在“替换为”中输入的内容,并且您只保留“Win864_SL-IN-869.wim.old0613”,这是正常的。

您可以尝试regexpal。我经常发现它更有用。

取决于正则表达式引擎“。*”可以贪婪地匹配(包括“.wim”)所以当它尝试匹配“.wim”时它已经过去了。在这种情况下,Jerry的答案更合适(我相信PCRE兼容的表达方式)