Поиск запроса в XML-файле с использованием регулярных выражений в Eclipse - PullRequest
1 голос
/ 08 июля 2019

Используя функцию Regex Eclipse Search, мне нужно найти запросы, написанные с помощью IBATIS e, хранящиеся в файлах XML.

Я попытался собрать строку regex самостоятельно ... но безуспешно.

ВВ некоторых файлах XML есть запросы.Пример файла:

<sqlMap namespace="Crediti">

 <select id="quotaVarPost50" parameterClass="qdb" resultClass="qdb">
      SELECT QDD_MAX.*
      FROM  ${schema}.QUOTEDATA QDD_MAX,
            ${schema}.ESERCIZIO ESE
      WHERE QDD_MAX.DATA_REGISTRAZIONE &gt;= #DATA_REGISTRAZIONE#
        AND QDD_MAX.TIPO_QUOTA = #TIPO_QUOTA#
        AND QDD_MAX.ANNO_RIF = #ANNO_RIF#
        AND QDD_MAX.SCO_TIPO_VARIAZIONE &lt;&gt; '04'
</select>


 <select id="allegatoCreditoDaRegDeb" parameterClass="RegistroDebitori" resultClass="stringa">
        SELECT PADRE.DESCRIZIONE
        FROM ${schema}.DECODIFICA_RELAZIONI REL
            INNER JOIN ${schema}.DECODIFICA PADRE
            ON (REL.TIPO_CODIFICA_PADRE = PADRE.TIPO_CODIFICA
                AND REL.CODICE_PADRE = PADRE.CODICE)
            INNER JOIN ${schema}.DECODIFICA FIGLIO
            ON (REL.TIPO_CODIFICA_FIGLIO = FIGLIO.TIPO_CODIFICA
                AND REL.CODICE_FIGLIO = FIGLIO.CODICE)
        WHERE REL.TIPO_RELAZIONE = 'T89'
            AND REL.CODICE_RELAZIONE = 'RP88'
            AND SYSDATE BETWEEN REL.DATA_INIZIO_VAL AND REL.DATA_FINE_VAL
            AND REL.TIPO_CODIFICA_FIGLIO = #COD_SOTTOINSIEME_ORIGINE#
            AND REL.CODICE_FIGLIO = #SCO_SOTTOINSIEME_ORIGINE#
    </select>

<delete id="deleteDomanda" parameterClass="hashmap" >
        DELETE ${schema}.VOCI_DOMANDA 
        WHERE TIPO_BILANCIO = #TIPO_BILANCIO#
            AND ANNO_ES = #ANNO_ES#
            AND PROGR_DEBITO = #PROGR_DEBITO#
            AND ID_VOCE_DOMANDA_DEBITO = #ID_VOCE_DOMANDA_DEBITO#
</delete>

</sqlMap>

Это пример, в реальном файле все больше и больше и больше утверждений (выбор, удаление, обновление, ...)

Я бы хотелиметь строку регулярного выражения (принятую функцией eclipse -> Search - File - Regular expression), которая позволяет мне найти оператор запроса, который содержит несколько слов.

Например, я ищу запрос, который содержит слова'TDECODIFICA_RELAZIONI' и 'TDECODIFICA'.Eclipse должен найти совпадение для statemend, имеющего id = "allegatoCreditoDaRegDeb" (присутствует в приведенном выше примере)

здесь изображение панели инструментов поиска

1 Ответ

0 голосов
/ 08 июля 2019

@ howlger Отвечает с помощью <select[^>]*>([^<]*\b(TDECODIFICA_RELAZIONI|TDECODIFICA)\b){2} Эта строка регулярного выражения позволяет мне сильно ограничить исследование.Он будет соответствовать оператору выбора, если найден хотя бы 2 результата (даже если совпадения могут быть хотя бы 2 раза одного и того же слова).

Спасибо @ howlger

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...