Ruby:匹配分隔符

Ruby:匹配分隔符,ruby,regex,Ruby,Regex,我想编写一个正则表达式模式来查找字符串中的分隔符,例如:”/\n1;2'其中字符用作给定字符串的分隔符。我正试图解决一个常见的编码kata问题,所以我不一定想要代码中的答案,而是一个如何使用regex实现这一点的想法。此分隔符可能会更改,可以是任何字符。有什么想法吗?这是我到目前为止在生产文件中所写的内容 class StringCalculator def add(numbers) return 0 if numbers.empty? return nil if numbe

我想编写一个正则表达式模式来查找字符串中的分隔符,例如:
”/\n1;2'
其中字符
用作给定字符串的分隔符。我正试图解决一个常见的编码kata问题,所以我不一定想要代码中的答案,而是一个如何使用regex实现这一点的想法。此分隔符可能会更改,可以是任何字符。有什么想法吗?这是我到目前为止在生产文件中所写的内容

class StringCalculator
  def add(numbers)
    return 0 if numbers.empty?
    return nil if numbers.end_with?('\n')
    numbers.tr!('\n', ',')
    numbers.split(',').map(&:to_i).reduce(:+)
  end
end
规格:

context 'when passed different delimiters' do
  it 'should support semicolons' do
    expect(@calculator.add('//;\n1;2')).to eq(3)
  end

  it 'should support percents' do
    expect(@calculator.add('//%\n1%5')).to eq(6)
  end
end

您正在解决的代码问题是什么?如果您的分隔符是1,而您的输入要求您添加1和2以生成3,会发生什么情况?@MxyL以下是获取分隔符的方法:“要更改分隔符,字符串的开头将包含一个单独的行,如下所示:“//[delimiter]\n[numbers…]”从这里开始,它很简单。好的,现在我读了它,这就更有意义了。我没想到
\n
会对这个问题产生重大影响。我不认为我提到可以获取字符串的开头,直到分隔符
;”这是在泄露任何东西
”/\n1;2'[/([^;]*);/,1]=>“/”