【发布时间】:2019-11-17 20:53:13
【问题描述】:
使用 Regex Eclipse 搜索功能,我需要查找使用 IBATIS e 编写的查询,并存储在 XML 文件中。
我尝试自己构建正则表达式字符串..但没有成功。
在某些文件 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 >= #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>
这是一个例子,真正的文件有越来越多的语句(select,delete,update,...)
我想要一个正则表达式字符串(被 eclipse 功能接受 -> 搜索 - 文件 - 正则表达式),它允许我找到包含一些单词的查询语句。
例如,我正在寻找包含“TDECODIFICA_RELAZIONI”和“TDECODIFICA”这两个词的查询。 Eclipse 应该找到具有 id="allegatoCreditoDaRegDeb" 的语句的匹配项(出现在上面的示例中)
【问题讨论】:
-
这个
<[^>]*\sid="allegatoCreditoDaRegDeb"[^>]*>([^<]*\b(TDECODIFICA_RELAZIONI|TDECODIFICA)\b){2}? -
感谢您的回答,但我不知道女巫是选择的 ID 名称。我只知道我正在寻找一个选择“”,其中包含我在正则表达式字符串中输入的单词。
-
我明白了。
<select[^>]*>([^<]*\b(TDECODIFICA_RELAZIONI|TDECODIFICA)\b){2},对吧? -
我第一次阅读您的评论时也尝试过这个,但没有用
-
它适用于我给定的例子。确保搜索字段中没有前面或后面的空格。