Как проверить информацию между тегами? - PullRequest
2 голосов
/ 16 марта 2012

Я пытаюсь использовать шаблон регулярных выражений, чтобы получить информацию между определенным тегом, например так:

val input = """#<tag>
  Information 1
  Information 2
  Information 3
#</tag>""".stripMargin

val testPattern = """#<tag>(.*?)#<\/tag>""".r
testPattern.findAllIn(input) foreach { println(_) }

Но это, к сожалению, не подходит. Так как я не гуру регулярных выражений: что мне здесь не хватает?

Заранее спасибо.

1 Ответ

4 голосов
/ 16 марта 2012

Точка (.) не будет соответствовать новым строкам по умолчанию.Вы можете изменить это поведение следующим образом:

val testPattern = """(?s)#<tag>(.*?)#</tag>""".r

Обратите внимание на (?s), которое представляет собой « выражение встроенного флага », которое запускает новое поведение.

Также, этот связанный вопрос также может содержать ответы на некоторые проблемы, с которыми вы можете столкнуться.

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