Раздел: Программирование
Регулярное выражение – это способ задавать шаблоны для строк. В Axapta существует собственный движок регулярных выражений. Их использую следующие конпоненты:
Поиск присваивания переменной в классе: http://erpkb.com/Axapta/ReguljarnoeVyrazhenie/files?get=regexp_aotfind.png
Расшифровка выражения «oldVoucher: *=»: «найти строки, в которых есть подстрока oldVoucher далее следует ноль или несколько пробелов далее символ =»
где «: » - это пробел а «*» - ноль или более повтроений символа
Система не различает регистры символов.
В регулярном выражении можно использовать следующие спецсимволы
#|
|| Символ | Описание ||
\ | Обратная черта используется, если вы хотите найти спецсимвол. Например «\<» означает знак «меньше» а не начало строки | ||||
~< или | Знаки 'меньше' (<) или 'крышка' ( | ) обозначают начало строки. | |||
---|---|---|---|---|---|
~> или & | знаки 'больше (>) sign или амперсенд (&) означают конец строки | ||||
? или . | Вопросительный знак (?) или точка (.) означают любой символ (кроме Enter, и перевода строки). | ||||
:<буква> | Двоеточие с последующей буквой означает некоторыйкласс символов: | ||||
:a | буква | ||||
:d | цифра | ||||
:n | буква или цифра | ||||
:<пробел> | пробелы, символы табуляции, контрольные символы вроде перевода строки | ||||
* | ноль или несколько повторений предшествующего символа, например, «fo*d» соответствует «fd» «fod» «foooood» но не «fzd» | ||||
+ | 1 или несколько повторений предшествующего символа, например, «fo+d» соответствует «fod» «foooood» но не «fzd» или «fd» | ||||
- | 0 или 1 повторений предшествующего символа, например, «fo-d» соответствует «fd», «fod» | ||||
[] | Один из перечисленных символов. Можно задавать диапазоны. Например, [12] - это 1 или 2; [0-9] - это цифра | ||||
[ | ] | ни один из перечисленных символов [ | 0-9] – всё, кроме цифр | ||
Регулярные выражения в Axapta довольно ограничены по функциональности. К счастью можно использовать внешние регулярные выражения.
В Ax30 можно использовать регулярные выражения VB через COM (см. RegExearch)
В Ax40 используются регулярные выражения .NET (см. Classes\SysEmailDistributor\validateEmail )