2015-11-10 5 views
0

мне нужно два регулярное выражение для следующих в случаях:RegEx для динамической замены выражения

1. заменить этот

lr_start_transaction("001_0010_123-A1-a_text-or-numbers"); 

с этим

lr_start_transaction(lr_eval_string("{scriptid}_0010_123-A1-a_text-or-numbers")); 

2. заменить этот

lr_end_transaction("001_0010_123-A1-a_text-or-numbers",LR_AUTO); 

с этим

lr_end_transaction(lr_eval_string("{scriptid}_0010_123-A1-a_text-or-numbers"),LR_AUTO); 

Часть между апострофами является динамической.

Я использую Notepad ++ для редактирования кода.

Может ли кто-нибудь мне помочь?

+0

Добро пожаловать на Stack Overflow. Мы ожидаем, что вопросы включают попытку сначала решить проблему, поскольку мы не выдаем куски кода. Можете ли вы опубликовать то, что вы пробовали до сих пор? Тогда люди гораздо чаще будут помогать. – EkcenierK

+0

Дополнительное объяснение: мне нужно заменить «lr_start_transaction (« ... »); с "lr_start_transaction (lr_eval_string (" {scriptid} _... "));" – Troste

+0

Извините, но я очень плохо в regex, поэтому все, что я пробовал, не очень полезно. – Troste

ответ

0

Вы можете просто искать увидеть DEMO

(\(".*?)(_.*") 

и заменить его:

transaction(lr_eval_string("{scripted}\2) 

Объяснение:

(\(".*?) // look for (" in a non-greedy way (capture in \1) 
(_.*") // look for an underscore up to the next quote (capture in \2) 


transaction(lr_eval_string("{scripted}\2) 
// replace text, put back the capture group 2, then a closing parenthesis 
+0

Это то, что я делаю сейчас, но я хочу сэкономить время (и избежать ошибок). Вот почему я ищу регулярное выражение, чтобы сделать только 1 замену вместо 2. Последняя часть также отличается »)), а не«); – Troste

+0

Perfect: Я использовал «lr_start_transaction (\ (". *?) (_. * ")" И "lr_start_transaction \ (lr_eval_string \ (" {scripted} \ 2 \) "в блокноте, и он отлично работает. добавил несколько предупреждающих знаков. Большое вам спасибо! – Troste

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