我正在尝试制作一个正则表达式来匹配除确切结尾字符串之外的任何内容,在本例中为扩展名“.exe”。
名为文件的示例:
- 'foo'(无扩展名)我想得到'foo'
- 'foo.bar' 我想得到 'foo.bar'
- 'foo.exe.bar' 我要得到'foo.exe.bar'
- 'foo.exe1' 我要得到'foo.exe1'
- 'foo.bar.exe' 我要得到'foo.bar'
- 'foo.exe' 我要得到'foo'
到目前为止,我创建了正则表达式 /.*\.(?!exe$)[^.]*/
但它不适用于情况 1 和 6。
最佳答案
您可以使用正数 lookahead .
^.+?(?=\.exe$|$)
^
字符串开始.+?
非 greedily匹配一个或多个字符...(?=\.exe$|$)
直到文字.exe
出现在末尾。如果没有,比赛结束。
关于ruby - 正则表达式匹配除结束字符串之外的任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35048830/