抱歉,我在正则表达式上很糟糕,但我试图找到一个匹配任何以字符串" .wim"结尾的字符串的字符串。没有别的东西。例如,给定以下字符串:
Vista32Sp2_SL-56-GB3.wim
Vista64Sp2_SL-56-GB3.wim
Win864_SL-IN-869.wim.old0613
我希望我的正则表达式匹配前2个,但不是最后一个。该字符串必须以.wim结尾,而不仅仅包含它。我在正则表达式上的第一次尝试是^.*\.wim$
,但是我把它放到了在线的Regex Tester中,它没有用。
答案 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兼容的表达方式)