Показать сообщение отдельно
Старый 07.04.2016, 11:40   #5  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,715 / 1204 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Насколько я вижу, в постановке задачи речь идет не о регулярных выражениях, а о последовательной замене. Как "зарядка для ума" описанный метод подойдет. Но лично я бы просто написал 3 последовательных замены

X++:
str strName;

strName = custTable.Name;
strName = global::strReplace(strName, '\"', '`');
strName = global::strReplace(strName, '\'', '`');
strName = global::strReplace(strName, '&', '_');

Не вижу никакого практического смысла "вытягивать" команду замены в одну строку. И редактировать сложно и сама задача довольно специфическая. Я бы сказал, не очевидная.

Если так уж хочется написать посимвольную замену, то имеет смысл не использовать существующий метод global::strReplace(), а написать свой собственный, где в качестве параметра передаются две строки с наборами символов. Не замена текста на текст, а замена каждого символа из первого параметра на соответствующий символ из второго.

Чтобы было понятно о чем речь, есть функция ChrTran в FoxPro. Вот ее описание

https://msdn.microsoft.com/en-us/lib...(v=vs.71).aspx

Написать ее аналог в X++, думаю, будет не очень сложно
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...

Последний раз редактировалось Владимир Максимов; 07.04.2016 в 12:48.