• "[[:alnum:]]" соответствует любой строке, содержащей буквенно-цифровые символы, отвечающие национальным установкам. Для английского языка это эквивалентно выражению "[a-zA-Z_0-9]".
•"[[:digit:]]" соответствует любой строке, содержащей цифры. Эквивалентное регулярное выражение -
•"[[:alpha: ]]" соответствует любым строкам, содержащим знаки алфавита, отвечающего национальным установкам. Эквивалентное регулярное выражение для английского языка - "[a-zA-Z]".
Последовательность нескольких символов, входящая в выражение в квадратных скобках и заключенная между [ и ". ]" образует отдельный элемент. Такая последовательность представляет один элемент в списке выражения в квадратных скобках. Поэтому выражение в квадратных скобках, содержащее многосимвольный элемент, может соответствовать нескольким символам. Например, если в последовательности есть элемент ch, то регулярное выражение " [ [. ch. ] ] *с" соответствует первым пяти символам chchcc.
В выражении в квадратных скобках элемент, заключенный между и "=]" представляет собой класс эквивалентности (equivalence class), обозначающий последовательности символов всех элементов, эквивалентных данному, включая самого себя. (Если других эквивалентных сопоставляемых элементов нет, действие такое же, как если бы разделителями были "[." и ". ]".) Например, если о и принадлежат классу эквивалентности, то "[[=о=]]", [[="=]]" и "[о"]" представляют собой синонимы.
Дополнительную информацию можно получить на man/manl 860.htm/.
Создание регулярного выражения
Создадим регулярное выражение, соответствующее денежной сумме: 10000 10,000 10000.00 10,000.00
Все эти форматы допустимы; кроме того, допустимой суммой должен быть ноль. Число должно удовлетворять следующим критериям:
♦ Оно должно быть 0 или любым числом, начинающимся не с нуля
♦ После десятичной точки может быть не более двух цифр
♦ Значение может быть отрицательным
♦ В числе могут присутствовать запятые
Будем создавать регулярное выражение по шагам. Строка может выглядеть как «О»:
"~0$"
Допустимо любое число, начинающееся не с нуля: "~[1-9][0-9]*$"
Символ " означает, что строка должна начинаться с элемента, который непосредственно следует за ним. То есть в данном случае строка должна начинаться с цифр от 1 до 9. За [0-9] следует *, что означает возможность вхождения в строку нуля или более символов. Таким образом, [0-9] * воспринимается как любое количество цифр (и как их отсутствие). Наконец, $ означает, что строка должна оканчиваться этим элементом.