[英]Looking for query in xml file using regex in eclipse
Using Regex Eclipse Search feature, I need to find queries written with IBATIS e stored in XML files. 使用Regex Eclipse搜索功能,我需要查找用IBATIS e编写的,存储在XML文件中的查询。
I tried build by myself the regex string.. but without successful. 我试图自己建立正则表达式字符串..但没有成功。
In some file XML there are queries. 在某些文件XML中,存在查询。 An example of a file :
文件示例:
<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 >= #DATA_REGISTRAZIONE#
AND QDD_MAX.TIPO_QUOTA = #TIPO_QUOTA#
AND QDD_MAX.ANNO_RIF = #ANNO_RIF#
AND QDD_MAX.SCO_TIPO_VARIAZIONE <> '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>
This is an example, the real file has more and more and more statement (select, delete, update , ...) 这是一个示例,实际文件中的语句越来越多(选择,删除,更新,...)
I would like have a regex string (accepted by eclipse feature -> Search - File - Regular expression) that allow me to find the statement of a query that contains some words. 我想要一个正则表达式字符串(被Eclipse功能->搜索-文件-正则表达式接受),它使我能够找到包含一些单词的查询语句。
For example i looking for a query who containes the words 'TDECODIFICA_RELAZIONI' and 'TDECODIFICA'. 例如,我正在查找包含单词“ TDECODIFICA_RELAZIONI”和“ TDECODIFICA”的查询。 Eclipse should find the match for the statemend that has id="allegatoCreditoDaRegDeb" (present in the example above)
Eclipse应该找到具有id =“ allegatoCreditoDaRegDeb”的状态表的匹配项(在上面的示例中显示)
@howlger Answers with <select[^>]*>([^<]*\\b(TDECODIFICA_RELAZIONI|TDECODIFICA)\\b){2}
This regex string allow me to restrict a lot the researching. @howlger用
<select[^>]*>([^<]*\\b(TDECODIFICA_RELAZIONI|TDECODIFICA)\\b){2}
这个正则表达式字符串使我可以限制很多研究。 It will match a select statement when found at least 2 result (even if the matchies could be even 2 time of one of the same word). 当找到至少2个结果时,它将与select语句匹配(即使匹配结果可能是同一单词之一的2倍)。
Thanks @howlger 谢谢@howlger
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.