挑战要求捕获所有字符,包括第二个“。”。
字符串中的EG:FILE_NAME.EXTENSION.OTHEREXTENSIONadasd ^^ assdassds34
捕获的字符应为“ .OTHEREXTENSIONadasd ^^ assdassds34”
因此,我应该以“ FILE_NAME.EXTENSION”结尾
我尝试过的正则表达式捕获第一个“。”之后的所有字符。或引发错误:后向模式无效
第一个出现错误的示例:
string = "FILE_NAME.EXTENSION.OTHEREXTENSIONadasd^^assdassds34"
string.gsub(/(?<=[.]\S+)[.]\S+/, '')
第二个示例错误地捕获了'.EXTENSION.OTHEREXTENSIONadasd ^^ assdassds34':
string = "FILE_NAME.EXTENSION.OTHEREXTENSIONadasd^^assdassds34"
string.gsub(/(?<=[.])\S*?[.]\S*/, '')
答案 0 :(得分:1)
您可以使用
s = s.gsub(/\A([^.]*\.[^.]*)\..*/, '\1')
请参见regex demo和正则表达式图:
详细信息
\A
-字符串的开头([^.]*\.[^.]*)
-第1组:0+个非点,一个点和0+个非点\.
-一个点.*
-除换行符以外的0个或多个字符。