Lars Kvanum Ответов: 1

Нужна помощь с поиском и заменой шаблона


Привет ребята,

Как очень скоро станет совершенно ясно, я очень новичок. Если бы это было не так, я бы, вероятно, нашел аккуратное выражение, чтобы заполнить "очень" для меня :p в любом случае - я надеюсь, что кто-то здесь может помочь мне с выражением, которое я искал, чтобы сэкономить некоторое время на редактировании листа excel.

Пример текста, который у меня есть, выглядит следующим образом:
Load
#=MROUND(('Testing Program'!L28)*(AW6/100);2,5);IF(ISBLANK('Testing Program'!M__);2,5;'Testing Program'!M__))-'Testing Program'!I__
#=MROUND(('Testing Program'!L29)*(AW6/100);2,5);IF(ISBLANK('Testing Program'!M__);2,5;'Testing Program'!M__))-'Testing Program'!I__
#=MROUND(('Testing Program'!L32)*(AW6/100);2,5);IF(ISBLANK('Testing Program'!M__);2,5;'Testing Program'!M__))-'Testing Program'!I__



Load
#=MROUND(('Testing Program'!E35)*(AW6/100);2,5);IF(ISBLANK('Testing Program'!F_);2,5;'Testing Program'!F_))-'Testing Program'!B_
#=MROUND(('Testing Program'!E37)*(AW6/100);2,5);IF(ISBLANK('Testing Program'!F_);2,5;'Testing Program'!F_))-'Testing Program'!B_
#=MROUND(('Testing Program'!E39)*(AW6/100);2,5);IF(ISBLANK('Testing Program'!F_);2,5;'Testing Program'!F_))-'Testing Program'!B_
#=MROUND(('Testing Program'!E41)*(AW6/100);2,5);IF(ISBLANK('Testing Program'!F_);2,5;'Testing Program'!F_))-'Testing Program'!B_
#=MROUND(('Testing Program'!E43)*(AW6/100);2,5);IF(ISBLANK('Testing Program'!F_);2,5;'Testing Program'!F_))-'Testing Program'!B_



Load
#=MROUND(('Testing Program'!L30)*(AW6/100);2,5);IF(ISBLANK('Testing Program'!M__);2,5;'Testing Program'!M__))-'Testing Program'!I__
#=MROUND(('Testing Program'!L31)*(AW6/100);2,5);IF(ISBLANK('Testing Program'!M__);2,5;'Testing Program'!M__))-'Testing Program'!I__
#=MROUND(('Testing Program'!L33)*(AW6/100);2,5);IF(ISBLANK('Testing Program'!M__);2,5;'Testing Program'!M__))-'Testing Program'!I__



Load
#=MROUND(('Testing Program'!E36)*(AW6/100);2,5);IF(ISBLANK('Testing Program'!F_);2,5;'Testing Program'!F_))-'Testing Program'!B_
#=MROUND(('Testing Program'!E38)*(AW6/100);2,5);IF(ISBLANK('Testing Program'!F_);2,5;'Testing Program'!F_))-'Testing Program'!B_
#=MROUND(('Testing Program'!E40)*(AW6/100);2,5);IF(ISBLANK('Testing Program'!F_);2,5;'Testing Program'!F_))-'Testing Program'!B_
#=MROUND(('Testing Program'!E42)*(AW6/100);2,5);IF(ISBLANK('Testing Program'!F_);2,5;'Testing Program'!F_))-'Testing Program'!B_
#=MROUND(('Testing Program'!E44)*(AW6/100);2,5);IF(ISBLANK('Testing Program'!F_);2,5;'Testing Program'!F_))-'Testing Program'!B_


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

Пример:
#=MROUND(('Testing Program'!L28)*(AW6/100);2,5);IF(ISBLANK('Testing Program'!M__);2,5;'Testing Program'!M__))-'Testing Program'!I__
=>
#=MROUND(('Testing Program'!L28)*(AW6/100);2,5);IF(ISBLANK('Testing Program'!M28);2,5;'Testing Program'!M28))-'Testing Program'!I28

и
#=MROUND(('Testing Program'!E35)*(AW6/100);2,5);IF(ISBLANK('Testing Program'!F_);2,5;'Testing Program'!F_))-'Testing Program'!B_
=>
#=MROUND(('Testing Program'!E35)*(AW6/100);2,5);IF(ISBLANK('Testing Program'!F35);2,5;'Testing Program'!F35))-'Testing Program'!B35


Что я уже пробовал:

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

Это то, что у меня есть для моего регулярного выражения, но запуск validate даже не соответствует ни одной вещи:
\#=MROUND\(\(\'Testing Program\'!([L]+L)(\d)\)*\(AW\d/100\);2,5\);IF\(ISBLANK\(\'Testing Program\'!M__\);2,5;\'Testing Program\'!M__\)\)-\'Testing Program\'!I__


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

Спасибо!

1 Ответов

Рейтинг:
10

Lars Kvanum

Ладно, мне уже пора спать. В настоящее время я зашел так далеко, что использую

(#=MROUND\(\('Testing Program'![L](\d+)\)\*\(AW\d\/100\);2,5\);IF\(ISBLANK\('Testing Program'!M)(__)(\);2,5;'Testing Program'!M)(__)(\)\)-'Testing Program'\!I)(__)
как мое регулярное выражение и
$1$2$4$2$6
в качестве моей замены. Это делает в значительной степени то, что я ищу для одного из случаев, но, возможно, не самое элегантное решение...?...

-------------------
Хорошо. Новый день, новые возможности. В итоге я получил следующее:
* Регулярное выражение: (#=MROUND\(\('тестовая программа'![LlEe] выражение(\D+)\)\*\(АВ\Д\/100\);2,5\);если\(ЕПУСТО\('программы испытаний'![Ммфф])(__?)(\);2,5;'Программа Тестирования"![Ммфф])(__?)(\)\)-'Программа Тестирования'\![IiBb])(__?)
* Замена: $1$2$4$2$6

Если кто-то может помочь мне с лучшим решением, я бы с удовольствием его услышал, но сейчас это должно сработать :)