从Ruby中的字符串中删除某些字母数字字符

时间:2016-03-11 19:43:56

标签: ruby string replace strip

我必须根据字符串的第一个字母数字字符验证字符串。某些字符可以是字符串的一部分,但如果它们处于开头,那么它们必须被忽略。

例如:

---  BATest- 1   --

应该是:

BATest-1

如何从开头和结尾删除短划线而不是从中间删除?

要添加到我的问题:第一个字母数字字符是否可以决定是否删除以下字母数字字符?

即。如果A则不需要删除任何内容并抛出验证错误;然而如果B然后如上所述剥去字符串。

2 个答案:

答案 0 :(得分:1)

您要求从开头和结尾删除破折号:

"--- BATest- 1 --".gsub(/^-+|-+$|\s/, "")
# => "BATest-1"

答案 1 :(得分:1)

r = /
    --+ # Match at least two hyphens
    |   # or
    \s  # Match a space
    /x  # Free-spacing regex definition mode

'--- BATest- 1 --'.gsub r, ""
  #=> "BATest-1"