Есть такой код в функции:

$regex = trim(str_replace("*", "\d", $prog['reg']));

$regex = str_replace("\"", "\\\"", $regex);

$regex = str_replace("{.}", "[.+]", $regex);

$regex = str_replace("{S}", "[\S]*", $regex);

$regex = str_replace(".", "\.", $regex);

$regex = str_replace("/", "\/", $regex);

$regex = str_replace("[", "\[", $regex);

$regex = str_replace("]", "\]", $regex);

$regex = str_replace("(", "\(", $regex);

$regex = str_replace(")", "\)", $regex);

$regex = str_replace("{ver}", "([\d|\.|:]+)", $regex);

$regex = str_replace("{ver:word}", "([\d|\.|:]+\D+[\d|\.|:]+)", $regex);

$regex = str_replace("{ver:beta}", "([\d|\.|:]+\s*\S+)", $regex);

$regex = str_replace("{word:ver}", "(\s*\S+[\d|\.|:]+)", $regex);

$regex = str_replace($regex, "/$regex/", $regex);

Т.е. на входе у нас есть выражения вида: {ver} и подобные…

Нужно чтобы еще поддерживались символы: R в кружочке, TM (торговая марка), пробелы в конце или начале выражения (если не ошибаюсь, для этого достаточно убрать trim?), переводы строк, табуляция, кавычки, знак процента.

Их также можно обозначать специальными знаками, например: Знак процента – [per], торговая марка – [tm], пробел – [sp] и т.п.

Только нужно ли это или просто правильно их экранировать и представлять в регулярных выражениях?

Т.е. сейчас выражения вида: {ver}% или "{ver}" - не работают.

Надеюсь, что понятно объяснил, что мне требуется, лучше это было бы дописать тому же программисту, который это и создал, но связь с ним уже утеряна.

16 лет назад
evmaster
Евгений 
44 года
22 года в сервисе
Был
2 года назад
83 отзыва

Выбранный исполнитель

Zerohold
Дмитрий 
48 лет
19 лет в сервисе
Был
3 года назад
16 лет назад
$4
1 день
Помог мне решить проблему с регулярными выражениями, которые я не понимаю практически.
Очень положительный заказчик. Побольше бы таких.

Заявки фрилансеров

Zerohold
Дмитрий 
48 лет
19 лет в сервисе
Был
3 года назад
16 лет назад