Инструменты пользователя

Инструменты сайта


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

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

axapta:регулярноевыражение [2018/04/13 22:43] (текущий)
Строка 1: Строка 1:
 +Раздел: [[Программирование | ]]
 +----
 +Регулярное выражение -- это способ задавать шаблоны для строк. В Axapta существует собственный движок регулярных выражений. Их использую следующие конпоненты:
 +  *[[функция/match | ]]
 +  *[[класс/TextBuffer | ]]
 +  *поиск по [[AOT | ]] -- там их даже нельзя выключить
 +  *поиск в коде (включается галкой)
  
 +{{toc}}
 +=== Примеры ===
 +
 +Поиск присваивания переменной в классе:
 +[[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 )
axapta/регулярноевыражение.txt · Последнее изменение: 2018/04/13 22:43 (внешнее изменение)