我正在尝试编写一个正则表达式来让字符串用点分隔。例如,
"abc", "abc.def", "a.b.c.e.f"
都是有效的,但是
"abc..def", ".abc", "abc."
无效
这是我在 scala 中的正则表达式代码
object Test {
def main(args: Array[String]) {
val TestPattern = "^([a-z]+)(\\.?[a-z]+)*".r
val x: String = "abc.def.hij"
x match {
case TestPattern(a,b) => println(a + b)
case _ => println("Not Found")
}
}
}
所以这是我的正则表达式,
"^([a-z]+)(\\.?[a-z]+)*".r
它有两个组件,
1. Starts with a-z
2. Repeat (has 0 or 1 dot, one or more from a-z) zero or more times
但,
Input: abc.def.hij
Output: abc.hij
我不明白为什么
.def
没有出现在我的输出中。