Назад | Перейти на главную страницу

Как создать регулярное выражение?

Мне нужна помощь с регулярными выражениями. У меня в rabbitMQ есть очереди, около 1000:

ha-collector-data-test2
ha-collector-data-1434
ha-collector-data-45-test3
ha-collector-data-terty4
ha-collector-data-341
etc.

И мне нужно отфильтровать эти очереди. Например:

FILTER='[{"name": "ha-collector-data-test2"}, {"name": "ha-collector-data-1434"}, {"name": "ha-collector-data-45-test3"}, {"name": "ha-collector-data-terty4"} ]'

Каждую очередь описать отдельным именем сложно

Какое регулярное выражение следует использовать для очередей с одинаковыми начальными именами? Я использовал это, но это неправильно:

FILTER='[{"name": "ha-collector-data-*"} ]'
FILTER='[{"name": "ha-collector-data-[a-z]"} ]'

Следующий шаблон должен соответствовать вашим примерам:

FILTER='[{"name": "ha-collector-data-.*"} ]'

This specifies: Match every character (= '.') zero or more times (= '*')

Оба фильтра не работают, потому что:

1) FILTER='[{"name": "ha-collector-data-*"} ]'
'*' matches the preceding character zero or more times. Since the preceding char is - 
this rule matches something like ha-collector-data-- 


2) FILTER='[{"name": "ha-collector-data-[a-z]"} ]'
This filter doesn't match the strings that start with numbers after '-' and 
furthermore it matches the next char only.