Escape-строка для передачи в виде регулярного выражения

Я хотел бы создать функцию, которая создает регулярное выражение, совпадающее с произвольной строкой, указанной на входе. Например, когда я кормлю его123$ это должно соответствовать буквально"123$" и не123 at the end of the string.

def convert( xs: String ) = (xs map ( x => "\\"+x)).mkString                 

val text = """ 123 \d+ 567 """                                                
val x = """\d+"""                                                            
val p1 = x.r                                                                 
val p2 = convert(x).r                                                        

println( p1.toString )                                                       
  \d+ // regex to match number                                               

println( ( p1 findAllIn text ).toList )                                      
  List(123, 567) // ok, numbers are matched                                  

println( p2.toString )                                                       
  \\\d\+ // regex to match "backshash d plus"                                

println( ( p2 findAllIn text ).toList )                                      
  List() // nothing matched :(                                               

Итак последнееfindAllIn должен найти\d+ в тексте, но это не так. Что здесь не так?

Ответы на вопрос(2)

Ваш ответ на вопрос