У меня есть несколько строк, с которыми я пытаюсь сопоставить
- Член команды кафе: Grovedale (Популярные)
- Член команды кафе: Barwon Heads (Featured)
- Член команды кафе: Barwon Heads
То, что я смог придумать, это /(?<=\:\s)(.+)(?=\s\()/g
, который будет работать для вариантов 1 и 2, но 3 (потому что я ищу открытую скобку после местоположения), он не будет работать. Я озадачен тем, как еще я мог бы пойти по этому поводу.
Где я тестировал
Edit:
Похоже, все, что мне нужно было добавить, было |$
, так что теперь это выглядит как /(?<=\:\s)(.+)(?=\s\(|$)/g
, но при тестировании в codepen он все еще не правильно захватывает строку. Где regexr говорит, что должно работать.
// vue stuff
new Vue({
el: "#app",
data: {
titles: [
"Cafe Team Member: Grovedale (Featured)",
"Cafe Team Member: Barwon Heads (Featured)",
"Cafe Team Member: Barwon Heads",
]
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
<template v-for="title in titles">
<p>{{ title.match(/(?<=\:\s)(.+)(?=\s\(|$)/g) }}</p>
</template>
</div>