Почему в scala, используя одно и то же регулярное выражение, используя 2 разных метода сопоставления, можно получить 2 разных результата? - PullRequest
4 голосов
/ 21 сентября 2011

Почему здесь есть совпадение:

scala> """\bdog\b""".r
res65: scala.util.matching.Regex = \bdog\b
scala> res65.findFirstIn(" The dog plays in the yard")
res66: Option[String] = Some(dog)

Но не здесь:

scala> "The dog plays in the yard".matches("""\bdog\b""")
res67: Boolean = false

?

Ответы [ 2 ]

8 голосов
/ 21 сентября 2011

Во втором случае все перемешивание должно соответствовать регулярному выражению, в первом случае может соответствовать любая часть строки.Сравните второй случай с этим:

"The dog plays in the yard".matches(""".*\bdog\b.*""")
5 голосов
/ 21 сентября 2011

Вы сравниваете findFirstIn с matches, и, конечно, строка содержит , но не соответствует \bdog\b.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...