我想创建一个函数,用于创建匹配输入端给定的任意字符串的正则表达式。例如,当我向它提供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+
,但是它没有。
https://stackoverflow.com/questions/11774306
复制相似问题