А как найти символы и строки с помощью языка JavaScript
В данной статье мы кратко расскажем о различных алгоритмах поиска символов на языке JavaScript. Итак, начнем с азов. В JavaScript прямой слэш применяется для окаймления регулярного выражения — примерно так же, как двойные кавычки окаймляют строку. Существует и другой синтаксис, но мы не будем его здесь рассматривать.
Рассмотрим сценарий, который выполняет сравнение с шаблоном. Он позволяет искать вхождения последовательностей одного и того же символа. Чтобы найти два одинаковых символа без других символов (включая пробельные) между ними, можно просто использовать шаблон, в котором нужный символ записан дважды. В качестве примера рассмотрим, как можно найти последовательности символов, где символ встречается точно два раза — например, двойная "мм" в таких словах. Формулировка задачи для такого сравнения выглядит следующим образом: "найти все вхождения строчной буквы "м", за которой непосредственно следует еще одна буква "м". Поиск будет выполняться в файле содержащем такой текст : "
Каждая пара символов представляет собой метасимвол, который означает цифру от 0 до 9 включительно. Метасимвол не означает обратный слэш, за которым следует строчная буква. Обратите внимание, что метасимвол существенно отличается по значению от литеральных символов, которые применялись в рассмотренных раньше шаблонах. Символ А в шаблоне соответствует только букве А, а метасимвол d соответствует любой цифре 0, 1, 2, 3, 4, 5, б, 7, 8 или 9. Метасимвол часто соответствует классу символов.
В данном случае метасимвол d соответствует классу символов — цифрам. Шаблон ddd соответствует трем последовательным цифрам, т.е. 012, 234, 345, 999 и сотням других трехзначных чисел.
Сравнение с трехзначными числами
Предположим, что нам нужно найти последовательность, состоящую из трех цифр. Проще говоря, нужно найти трехзначное число. Несколько более формально это можно выразить так: " найти цифру, проверить, является ли цифрой следующий символ, и если да, то проверить, является ли цифрой третий символ за ними".
Метасимвол означает одну цифру; значит, как было сказано, для поиска трех цифр подряд можно использовать шаблон. Вы можете создать и свои тестовые строки. Обратите внимание, что шаблон ddd соответствует любой последовательности трех цифр подряд, но не одиночным цифрам и не парам цифр. Механизм обработки регулярных выражений ищет цифровой символ. Если первый рассматриваемый символ не является цифровым, механизм переходит к следующему символу тестовой строки и проверяет его. Если это не цифра, он переходит дальше и снова выполняет проверку. Если найдено соответствие первому вхождению d, то механизм обработки регулярных выражений сдвигается на следующий символ и проверяет, является ли и он цифровым. Если да, то на соответствие метасимволу d (т.е. цифре) проверяется третий символ. Если три символа подряд являются цифровыми, то найдено соответствие регулярному выражению ddd.
Программа Komodo Regular Expression Toolkit.
Действие этого процесса сравнения можно наблюдать с помощью Komodo Regular Expression Toolkit. Откройте Komodo, Regular Expression Toolkit и удалите старую информацию из полей ввода. Введите "
В Komodo Regular Expression Toolkit для правильного обнаружения соответствия может понадобиться добавить после тестовой строки пробел. Почему в описанном примере применялся JavaScript ? Да потому, что OpenOffice.org Writer не содержит метасимвола d. В нем сравнение с цифрами выполнить не так легко. Как видно на А.9, в OpenOffice.org Writer соответствие не обнаружено. Для цифровых символов в OpenOffice.org Writer применяется нестандартный синтаксис, в котором нет метасимвола d. Пока достаточно сказать, что регулярное выражение дает тот же результат, что и шаблон ddd, т.е. шаблон означает то же самое, что и ddd. Поиск трех цифр подряд в файле АВС12txt с помощью этого класса символов показан на АЛО. Утилита findstr также не знает метасимвол d, так что если вы захотите воспользоваться ей для сравнения с образцом, то придется использовать в командной строке класс символов следующим образом "gate 4000 ". Соответствия будут найдены в четырех строках. Приведенная командная строка работает правильно, только если файл находится в текущем каталоге. Если он находится в другом каталоге, то в командной строке необходимо указать путь файла. В следующем разделе статьи будут объединены освоенные вами приемы, чтобы находить сочетания буквально указанных символов и последовательностей символов.
Комментарии
Пока нет комментариев.
Прокомментировать