入力で指定された任意の文字列に一致する正規表現を作成する関数を作成したいと思います。たとえば、フィードするときは、文字列の最後ではなく、123$
文字通り一致する必要があります。"123$"
123
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+
ですが、そうではありません。ここで何が問題になっていますか?