Переключить поток с помощью запоминающего устройства.
MemoryStream memStream = new MemoryStream();
PdfWriter wri = PdfWriter.GetInstance(doc, memStream);
...
return memStream.ToArray();
То же как строковая вставка.
if goo =~ /#{Regexp.quote(foo)}/
#...
Обратите внимание, что Regexp.quote
в Jon L. 's ответ важен!
if goo =~ /#{Regexp.quote(foo)}/
, Если Вы просто делаете "очевидную" версию:
if goo =~ /#{foo}/
тогда периоды в Вашем тексте соответствия рассматривают, поскольку regexp подстановочные знаки, и "0.0.0.0"
будет соответствовать "0a0b0c0"
.
Примечание также, что, если Вы действительно просто хотите проверить на соответствие подстроки, можно просто сделать
if goo.include?(foo)
, который не требует дополнительного заключения в кавычки или волнения по поводу специальных символов.
Вероятно Regexp.escape(foo)
был бы начальная точка, но там серьезное основание, Вы не можете использовать более стандартную интерполяцию выражения: "my stuff #{mysubstitutionvariable}"
?
кроме того, можно просто использовать !goo.match(foo).nil?
с литеральной строкой.
Используйте Regexp.new:
if goo =~ Regexp.new(foo) # Evaluates to /0.0.0.0/
foo = "0.0.0.0"
goo = "here is some other stuff 0.0.0.0"
puts "success!" if goo =~ /#{foo}/