2009-12-04 3 views
0

Как вы знаете, найти Visual Studio и заменить функцию позволяет использовать регулярные выражения, но я не знаю, как изменить что-то вроде этого:Изменение текста в Visual Studio с использованием регулярных выражений

Math.round((document.getElementById('selectedproductPrixdock').value*document.getElementById('addxdock').value)*100)/100 

к этому один:

(Math.round((document.getElementById('selectedproductPrixdock').value*document.getElementById('addxdock').value)*100)/100).toFixed(2) 

есть слишком много кода, как это на странице и изменить их один на один большой хлопот.

Заранее спасибо ..

+0

Нам нужен немного больше контекста - это первая строка всей строки или в середине строки? Насколько сходны другие целевые линии к этому? – Jay

+0

Привет, внутренняя часть может иногда различаться, но регулярное выражение не должно заботиться о внутренней части, все, что мне нужно, это добавить '(' в начале и ') .toFixed (2)' в конце данной строки. – Tarik

ответ

1

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

Я просто сделать это:

string s = "...some text..."; 
string toBeReplaced = "Math.round((document.getElementById('selectedproductPrixdock').value*document.getElementById('addxdock').value)*100)/100"; 
string replacement = "(" + toBeReplaced + ").toFixed(2)"; 
string result = s.Replace(toBeReplaced, replacement); 

EDIT:

После перечитывая свой вопрос, зная, каждый индивидуальный идентификатор бы сделать это сложнее. Вот регулярное выражение, которое должно работать:

string s = "...some text..."; 
string result = Regex.Replace(s, @"Math\.round\(\(document\.getElementById\('.+'\)\.value*document\.getElementById\('.+'\).value\)*100\)/100", "($0).toFixed(2)"); 
0

Насколько схожие вещи вы пытаетесь найти?

Если все они одинаковы для внутренних аргументов, за исключением, то

s/Math.round\(\(document.getElementById\('(.*?)'\).value*document.getElementById\('(.*?)'\).value\)*100\)\/100/\(Math.round\(\(document.getElementById\('$1'\).value*document.getElementById\('$2'\).value\)*100\)\/100\).toFixed\(2\)/g 

Замена $ 1 и $ 2 с тем, что VS использует для заполнения обратных ссылок.

0

Я думаю, что вы задаете слишком много регулярных выражений.

В связанных новостях вам, скорее всего, будет легче рефакторинг времени, если вы не упаковали пятьдесят инструкций в одну строку.

Смежные вопросы