Регулярное выражение

[RUS]lan

Новичок
Приветствую, не знаю в какую ветку писать...
я не программист, но так уж получилось что надо написать фильтр для поступающей информации на определенной спецпроге (в смысле не в код проги добавить :), а в интерфейсе программы вбить в окне фильтра). Покопался в интернетах и понял что переменные эти взяты из языков программирования. Мне помогли чуток и составили фильтр (обратиться к нему уже не могу), помогите мне его расшифровать чтобы чуток понять что к чему чтоб еще парочку подобных своять:
^w+\s+[^CKMPSTY].+
из того что понял:
^ - означает начало
w+ - <о ней в конце>
\s+
- один или более пробелов, табов
[^CKMPSTY] - исключить слова что начинаются на эти буквы
. - означает любой символ
+ - один или более символ
w+ - я не пойму, в таком виде \w+ она означает любые цифры буквы знак подчеркивания, а без косой черты это что?
Приведу пример чтобы легче понять что нужно и проверить фильтр на правильность, фильтрации будут подвергаться подобные заголовки, (фильтр кстати РАЗРЕШАЮЩИЙ):
SACN62 CYMX 111430
это должно фильтром отбрасываться т.к. начинается с буквы "С" 4х значный индекс.
другой пример:
FARA51 USNN 111430 AAA
а это должно пропускаться (разрешаться) т.к. индекс не начинается на одну из букв в квадр. скобках.
заодно проверьте фильтр, грамотно ли написан?​
 

antson

Новичок
Партнер клуба
очень похоже, что вы снифите общую шину в авто



без косой это просто буква .
можно избыточно написать начало понятным вам способом
^[A-Za-z0-9]+\s+
строка начинающаяся одной или более бувой/цифрой
после которой есть один или больше пробелов
и т.д.
 

antson

Новичок
Партнер клуба
\w - Символ, образующий "слово" - это произвольная цифра, буква или символ подчеркивания, проще говоря, любой символ, который может являться частью "слова" в Perl. Определение букв и цифр управляется символьными таблицами, с которыми была собрана PCRE. И, как следствие, эти наборы могут отличаться в различных локализированных дистрибутивах. Например, в локали "fr" (Франция) некоторые символы с кодом выше 128 используются для записи ударных символов и, соответственно, соответствуют маске \w.
думаю в приборе французской локали не будет. остается только подчеркивание, если оно разрешено или его гарантировано не будет в строке , то можно ;)
главное имхо KISS - т.е. чтобы вы сами понимали выражение
 

[RUS]lan

Новичок
Будут только латинские буквы и цифры...
Благодарю за помощь) :cool:
 

[RUS]lan

Новичок
Новая задача: должны пропускатся заголовки начинающиеся на S,F,W,V правильно ли я составил фильтр?
^(S|F|W|V)\w+\s+[^CKMPSTY].+
нужны ли скопки и какие круглые или квадратные?​
 

fixxxer

К.О.
Партнер клуба
Сработают оба варианта, но [SFWV] тут уместнее и эффективнее.

Советую тестировать вот в этой штуке:
http://regexr.com/

Там и подсветит и подскажет.
 
Сверху