在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
答案 0 :(得分:3)
问题在于您的输入字符串。您有一个退格符"\b"
。请尝试使用单引号字符串:
string = '\begin{theorem}[blaat] \label{thm:foo}'