我想为字符串上的正则表达式找到匹配项(如果有),但仅在给定索引之后进行测试。例如:
val p = "[a-zA-Z_][a-zA-Z0-9_]*".r
val t = "const pi = 3.141592"
val m = p.findFirstMatchIn(t, start=5) // not real syntax
也就是说,我要忽略字符串的前n = 5
个字符。有什么办法吗?
答案 0 :(得分:4)
Scala的.r
语法是原始java.util.regex.{Pattern, Matcher}
API的薄包装。原始API提供了更多控制。使用runtime:
scala> val m = Pattern.compile("[a-zA-Z_][a-zA-Z0-9_]*").matcher(t)
scala> m.region(5, t.size)
scala> m.find()
scala> m.group(0)
res6: String = pi