Во-первых, вы не не передаете updateFilters
в компонент advanced-options-model
, вы привязываете метод updateFilters
к событию updatefilters
.
Чтобы привязать параметры к компоненту, вы должны использовать v-bind:...
или просто :...
. Сокращение @...
для v-on:...
.
Если вы хотите «передать» событие updatefilters
из компонента filter-checkboxes
в ваш корневой компонент, вы должны сделать это так:
var filterCheckBoxes = {
template: `
<div>
<fieldset v-for="name in names">
<legend v-text="name"></legend>
<label v-for="...">
<input type="checkbox" ... @change="$emit('updatefilters')">
{{value}} ({{count}})
</label>
</fieldset>
</div>
`
};
var advancedOptionsModal = {
components: {
"filter-checkboxes": filterCheckBoxes
},
template: `
<div class="modal" ...>
<div class="modal-dialog" role="document">
<div class="modal-content">
...
<div class="modal-body">
<filter-checkboxes ... @updatefilters="$emit('updatefilters')"></filter-checkboxes>
</div>
...
</div>
</div>
</div>
`
};
Vue.component('advanced-options-model', advancedOptionsModal);
И где-то еще:
<advanced-options-model ... @updatefilters="updateFilters"></advanced-options-model>
[ 112] Это походит на правильное задание для регулярных выражений. Вот некоторый код Java для давания Вам общее представление, в случае, если Вы не знаете, как запустить:
String input = "Input text, with words, punctuation, etc. Well, it's rather short.";
Pattern p = Pattern.compile("[\\w']+");
Matcher m = p.matcher(input);
while ( m.find() ) {
System.out.println(input.substring(m.start(), m.end()));
}
Шаблон [\w']+
соответствия все словесные символы и апостроф, многократно. Строка в качестве примера была бы распечатана пословно. Взгляните на документацию класса Шаблона Java для чтения больше.
В основном Вы хотите соответствовать
([A-Za-z]) + (' ([A-Za-z]) *)?
правильно?
Вы могли попробовать regex, с помощью шаблона, который Вы сделали и выполнили количество количество раз, которым был найден шаблон.
Псевдокод был бы похож на это:
create words, a list of words, by splitting the input by whitespace
for every word, strip out whitespace and punctuation on the left and the right
Код Python был бы чем-то вроде этого:
words = input.split()
words = [word.strip(PUNCTUATION) for word in words]
где
PUNCTUATION = ",. \n\t\\\"'][#*:"
или любые другие символы Вы хотите удалить.
Я полагаю, что Java имеет эквивалентные функции в Строковом классе: String.split ().
Вывод выполнения этого кода текста Вы обеспечили в своей ссылке:
>>> print words[:100]
['Project', "Gutenberg's", 'Manual', 'of', 'Surgery', 'by', 'Alexis',
'Thomson', 'and', 'Alexander', 'Miles', 'This', 'eBook', 'is', 'for',
'the', 'use', 'of', 'anyone', 'anywhere', 'at', 'no', 'cost', 'and',
'with', 'almost', 'no', 'restrictions', 'whatsoever', 'You', 'may',
'copy', 'it', 'give', 'it', 'away', 'or', 're-use', 'it', 'under',
... etc etc.