Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 计数和删除前导字符_Ruby_Regex - Fatal编程技术网

Ruby 计数和删除前导字符

Ruby 计数和删除前导字符,ruby,regex,Ruby,Regex,我有一些字符串,其中包含数量可变的前导连字符,并且在字符串的主体中可能包含也可能不包含连字符。例如: --xxx xxx -xxxx ---xxxxxx-xx 在Ruby中,如何计算前导连字符的数量,以及如何返回移除前导连字符的字符串 非常感谢你的帮助 阅读和阅读 然后比较裸字符串和原始字符串的长度删除前导连字符: .sub(/^-*/, "") str.sub(/^-+(.+)/, '\1') 通过减去删除前后字符串的长度来计算前导连字符数。要删除前导连字符: .sub(/^-*/, ""

我有一些字符串,其中包含数量可变的前导连字符,并且在字符串的主体中可能包含也可能不包含连字符。例如:

--xxx xxx

-xxxx

---xxxxxx-xx

在Ruby中,如何计算前导连字符的数量,以及如何返回移除前导连字符的字符串

非常感谢你的帮助

阅读和阅读


然后比较裸字符串和原始字符串的长度

删除前导连字符:

.sub(/^-*/, "")
str.sub(/^-+(.+)/, '\1')

通过减去删除前后字符串的长度来计算前导连字符数。

要删除前导连字符:

.sub(/^-*/, "")
str.sub(/^-+(.+)/, '\1')
gsub删除前导连字符。s和new_的长度之差等于前导连字符的数量

>> "--xxx-xxx"[/\A-+/].size
=> 2
>> "--xxx-xxx".sub(/\A-+/, '')
=> "xxx-xxx"
编辑:@shime的评论让我想展示
String#[]
String#slice
的其他相关功能:

>> "--xxx-xxx"[/\A-+(.+)/, 1]
=> "xxx-xxx" 

这里不需要gsub,你正在使用一个带锚定符的重复正则表达式,这样sub会很好地工作。你应该锚定你的表达式,如果没有前导连字符,那么下一组将被删除,这可能不是OP想要的:“xxx--xxx--”。sub(+/-,“”)=>“xxxxxx--”我当时还以为是用c写的。谢谢。非常有用。唯一的问题是,我发现如果没有前导连字符[/\A-+/]会返回nil,所以[/\A-+/].size会给出一个错误。我通过打电话给我们解决了这个问题。如果有更优雅的方式,请告诉我。感谢您的帮助。我正在考虑Python的strip,它可以剥离特定的字符。