1

在 ruby​​ 中运行以下代码时:

string = "\begin{theorem}[blaat] \label{thm:foo}"
pattern = /^\\begin\{(theorem|definition)\}(\[.+\])?\s\\label\{(thm|def):.+\}$/
if string =~ pattern then
    puts "match"    
else
    puts "no match"
end

我得到一个“不匹配”的输出。

但是,当在rubular上使用相同的模式和字符串时,我得到了匹配。将上述代码与模式一起使用时,违规行为已经开始:

/^\\begin/

和字符串\begin。这与使用上述代码段不匹配,但它在 rubular.com 上匹配

我正在使用 Ruby 1.9.1

4

1 回答 1

3

问题在于您的输入字符串。你有一个退格字符"\b"。尝试使用单引号字符串:

string = '\begin{theorem}[blaat] \label{thm:foo}'
于 2012-04-06T11:06:22.240 回答