oxo*_*oxo 5 ruby regex string substring
Gah,正则表达式有点令人困惑.
我正在尝试删除字符串末尾的所有可能的标点字符:
if str[str.length-1] == '?' || str[str.length-1] == '.' || str[str.length-1] == '!' or str[str.length-1] == ',' || str[str.length-1] == ';'
str.chomp!
end
Run Code Online (Sandbox Code Playgroud)
我相信有更好的方法可以做到这一点.有什么指针吗?
str.sub!(/[?.!,;]?$/, '')
Run Code Online (Sandbox Code Playgroud)
[?.!,;] - 角色类.匹配这5个字符中的任何一个(注意,.在字符类中不是特殊的)? - 上一个字符或组是可选的$ - 字符串结束.这基本上用空字符串替换字符串末尾的可选标点符号.如果角色没有标点符号,那就是无操作.