2017-01-18 2 views
-2

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

Мне нужно удалить все между IBOQ_OrderingItems.Strings и ') с помощью регулярных выражений. Но я не могу написать регулярное выражение, чтобы выразить это условие, чтобы выразить это. В моих попытках это не распознает что-то вроде # 180'asdf 'или' adsf (asdf) asdf 'или' adf '. Когда распознано, regexp удаляет все содержимое файла.

object SQLCalcula_umaLinha: TFDQuery 
    IBOQ_OrderingItems.Strings = (
     'sf') 
    end 
    object SQLCalcula_VariasLinhas: TFDQuery 
    IBOQ_OrderingItems.Strings = (
     'sfdf' 
     'sdffs' 
     'sf') 
    end 
    object SQLCalcula_parentesesNoMeio: TFDQuery 
    IBOQ_OrderingItems.Strings = (
     'sfdf' 
     'sdffs ('' asdf '')' 
     'sf') 
    end 
+0

Для этого требуется MCVE - см. Http://stackoverflow.com/help/mcve. Помимо всего прочего, вы не говорите, какую библиотеку регулярных выражений вы используете, и вы не указали свое регулярное выражение или код, который его использует. – MartynA

+0

Прошу прощения. Мой английский ужас. Я не очень хорошо общается на английском. В любом случае, я нашел решение моего вопроса и опубликовал его. –

ответ

0

Я нашел решение:

IBOQ_.*.Strings.=.\((\s.[\w|\s|('|')|@|!|$|#||&|*|<|>|=|*|~]*.)+'\) 

Я надеюсь помочь :)

0

Или вы могли бы попробовать что-то вроде

IBOQ_.*\.Strings\s*=\s*\((?:'[^']*'|[^)])*\) 

, который делает это в 288 шагов вместо ваш, который делает это на 48067 шагах;)

Check it out here at regex101.

Редактировать Изменено для обработки круглых скобок внутри кавычек.

+0

Последняя группа ошибочна. Выбор не относится к последнему 'НФ') 'объект SQLCalcula_parentesesNoMeio: TFDQuery IBOQ_OrderingItems.Strings = ( 'SFDF' 'sdffs (' 'ASDF '')' 'НФ') конец' –

+0

К сожалению, моя вина. Ответ обновлен. – ClasG

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