В вашем коде v-for будет повторяться для каждого вхождения отеля в вашем массиве, создавая 3 раза <p>
Для создания <p>
только один раз вы должны поместить свой код в Тег <template>
вложен в тег <p>
.
Пример:
<p>
<template v-for="hotel in hotels">
<span v-if="hotel.facilities.indexOf('restaurant') !== -1">{{ hotel.name }}
Это может быть сделано с помощью пакета , отклеивают , беря пример из выбранного ответа:
# install.packages("unglue")
library(unglue)
s <- c("(sometext :: 0.1231313213)", "(moretext :: 0.111222)")
unglue_data(s, "({x} :: {y})")
#> x y
#> 1 sometext 0.1231313213
#> 2 moretext 0.111222
Или начинающий с кадра данных
df <- data.frame(col = s)
unglue_unnest(df, col, "({x} :: {y})",remove = FALSE)
#> col x y
#> 1 (sometext :: 0.1231313213) sometext 0.1231313213
#> 2 (moretext :: 0.111222) moretext 0.111222
можно получить сырые данные regex от отклеивать шаблона, дополнительно с именованным получением:
unglue_regex("({x} :: {y})")
#> ({x} :: {y})
#> "^\\((.*?) :: (.*?)\\)$"
unglue_regex("({x} :: {y})",named_capture = TRUE)
#> ({x} :: {y})
#> "^\\((?<x>.*?) :: (?<y>.*?)\\)$"
[еще 118] информация: https://github.com/moodymudskipper/unglue/blob/master/README.md
gsub делает это, из вашего примера:
gsub("\\((.*?) :: (0\\.[0-9]+)\\)","\\1 \\2", "(sometext :: 0.1231313213)")
[1] "sometext 0.1231313213"
вам нужно дважды экранировать \ s в кавычках, тогда они будут работать для регулярного выражения.
Надеюсь, это поможет.
Вот как я решил решить эту проблему. Я использовал два отдельных регулярных выражения для сопоставления первой и второй групп захвата и выполнил два вызова gregexpr
, затем вытащил совпавшие подстроки:
regex.string <- "(?<=\\().*?(?= :: )"
regex.number <- "(?<= :: )\\d\\.\\d+"
match.string <- gregexpr(regex.string, str, perl=T)[[1]]
match.number <- gregexpr(regex.number, str, perl=T)[[1]]
strings <- mapply(function (start, len) substr(str, start, start+len-1),
match.string,
attr(match.string, "match.length"))
numbers <- mapply(function (start, len) as.numeric(substr(str, start, start+len-1)),
match.number,
attr(match.number, "match.length"))