Regex Ruby look behind正则表达式错误:look behind中的模式无效
挑战调用捕获所有字符,包括第二个“.” 例如在字符串中:文件名.EXTENSION.OTHEREXTENSIONadasd^^^ assdassds34 捕获的字符应为“.OTHEREXTENSIONadasd^^ assdassds34” 因此,我应该以“FILE_NAME.EXTENSION”结尾 我尝试过的正则表达式要么捕获第一个“.”之后的所有字符,要么抛出错误:look behind中的模式无效 出现错误的第一个示例:Regex Ruby look behind正则表达式错误:look behind中的模式无效,regex,ruby,gsub,Regex,Ruby,Gsub,挑战调用捕获所有字符,包括第二个“.” 例如在字符串中:文件名.EXTENSION.OTHEREXTENSIONadasd^^^ assdassds34 捕获的字符应为“.OTHEREXTENSIONadasd^^ assdassds34” 因此,我应该以“FILE_NAME.EXTENSION”结尾 我尝试过的正则表达式要么捕获第一个“.”之后的所有字符,要么抛出错误:look behind中的模式无效 出现错误的第一个示例: string = "FILE_NAME.EXTENSION.OTH
string = "FILE_NAME.EXTENSION.OTHEREXTENSIONadasd^^assdassds34"
string.gsub(/(?<=[.]\S+)[.]\S+/, '')
string=“FILE_NAME.EXTENSION.OTHEREXTENSIONadasd^^assdassds34”
gsub(/(?您可以使用
s = s.gsub(/\A([^.]*\.[^.]*)\..*/, '\1')
请参见和正则表达式图:
详细信息
\A
-字符串的开头
([^.]*\.[^.]*)
-第1组:0+非点、a点和0+非点
\。
-一个点
*
-除换行符以外的任何0个或更多字符
如果您需要更多详细信息,请通过一条评论让我知道!谢谢!一个问题是“\1”基本上是说只返回组1中的匹配项?@NateDawg25\1
是对组1中存储的值的反向引用。它是组1中捕获的子字符串,而不是我们通常说的“匹配项”在整体匹配值的意义上。
s = s.gsub(/\A([^.]*\.[^.]*)\..*/, '\1')