Пытается извлечь информацию со страниц Википедии. Первоначально я хотел определить, какие страницы касались компаний. Я использовал следующее регулярное выражение, чтобы проверить, было ли слово «компания» между фразой «инфобокс» и первой «|» характер,Извлечение подстроки с использованием Scala regex
val text = (...wikipedia page xml...)
val infobox_company = """\{\{.*(?i)infobox[^\|]*company[^\|]*\|""".r
val is_company = infobox_company findFirstIn text != None
Теперь я хотел бы рассчитывать все различные типы infoboxes, которые присутствуют в Википедии. Я пытался изменять свое выражение регулярных выражений и протестировал его на образце:
val infobox_regex = """\{\{.*(?i)infobox[^\|](.*)[^\|]*\|""".r
val test_str = "{{Infobox dot-com company | name = 'my_doc_com'}}"
val infobox_regex(info_type) = test_str
Узор регулярного выражения не соответствует, так что я получаю scala.MatchError.
Как изменить выражение регулярного выражения для извлечения типа инфобокса (т. Е. Подстроки между «инфобоксами» и первым экземпляром «|»)?
захвата группа (группа 1 раз) проверить это https://regex101.com/r/kU4tF7/1 –