我想在一堆python模块中找到硬编码字符串,如电子邮件、路径或服务器名(在本例中只是电子邮件)。 我试着检查所有字典、列表和属性,看它们是否包含“mail”,然后检查它们是否包含字符串。虽然我得到了所有硬编码的邮件,但我也得到了邮件列表,它不是硬编码的,而是有qoutes的。你知道吗
//TESTLIST_STAR_EXPR[contains(@tokenValue,"mail")]/..//STRING[contains(@tokenValue,"'")]
以下是从python模块解析的xml示例:
<FILE_INPUT tokenValue="import" tokenLine="7" tokenColumn="0">
<STATEMENT tokenValue="import" tokenLine="7" tokenColumn="0">
<STMT_LIST tokenValue="import" tokenLine="7" tokenColumn="0">
<SIMPLE_STMT tokenValue="import" tokenLine="7" tokenColumn="0">
<IMPORT_STMT tokenValue="import" tokenLine="7" tokenColumn="0">
<IMPORT_NAME tokenValue="import" tokenLine="7" tokenColumn="0">
<IMPORT tokenValue="import" tokenLine="7" tokenColumn="0"/>
<DOTTED_AS_NAMES tokenValue="mails" tokenLine="7" tokenColumn="7">
<DOTTED_AS_NAME tokenValue="mails" tokenLine="7" tokenColumn="7">
<DOTTED_NAME tokenValue="mails" tokenLine="7" tokenColumn="7">
<NAME tokenValue="mails" tokenLine="7" tokenColumn="7">
<IDENTIFIER tokenValue="mails" tokenLine="7" tokenColumn="7"/>
</NAME>
</DOTTED_NAME>
</DOTTED_AS_NAME>
</DOTTED_AS_NAMES>
</IMPORT_NAME>
</IMPORT_STMT>
</SIMPLE_STMT>
</STMT_LIST>
<NEWLINE tokenValue="
" tokenLine="7" tokenColumn="12"/>
</STATEMENT>
<STATEMENT tokenValue="serverList" tokenLine="10" tokenColumn="0">
<STMT_LIST tokenValue="serverList" tokenLine="10" tokenColumn="0">
<SIMPLE_STMT tokenValue="serverList" tokenLine="10" tokenColumn="0">
<EXPRESSION_STMT tokenValue="serverList" tokenLine="10" tokenColumn="0">
<TESTLIST_STAR_EXPR tokenValue="serverList" tokenLine="10" tokenColumn="0">
<TEST tokenValue="serverList" tokenLine="10" tokenColumn="0">
<ATOM tokenValue="serverList" tokenLine="10" tokenColumn="0">
<NAME tokenValue="serverList" tokenLine="10" tokenColumn="0">
<IDENTIFIER tokenValue="serverList" tokenLine="10" tokenColumn="0"/>
</NAME>
</ATOM>
</TEST>
</TESTLIST_STAR_EXPR>
<ASSIGN tokenValue="=" tokenLine="10" tokenColumn="11"/>
<TESTLIST_STAR_EXPR tokenValue="[" tokenLine="10" tokenColumn="13">
<TEST tokenValue="[" tokenLine="10" tokenColumn="13">
<ATOM tokenValue="[" tokenLine="10" tokenColumn="13">
<LBRACKET tokenValue="[" tokenLine="10" tokenColumn="13"/>
<TESTLIST_COMP tokenValue="'chserver.prod.amce'" tokenLine="10" tokenColumn="14">
<TEST tokenValue="'chserver.prod.amce'" tokenLine="10" tokenColumn="14">
<ATOM tokenValue="'chserver.prod.amce'" tokenLine="10" tokenColumn="14">
<STRING tokenValue="'chserver.prod.amce'" tokenLine="10" tokenColumn="14"/>
</ATOM>
</TEST>
</TESTLIST_COMP>
<RBRACKET tokenValue="]" tokenLine="10" tokenColumn="34"/>
</ATOM>
</TEST>
</TESTLIST_STAR_EXPR>
</EXPRESSION_STMT>
</SIMPLE_STMT>
</STMT_LIST>
<NEWLINE tokenValue="
" tokenLine="10" tokenColumn="35"/>
</STATEMENT>
<STATEMENT tokenValue="mailDic" tokenLine="12" tokenColumn="0">
<STMT_LIST tokenValue="mailDic" tokenLine="12" tokenColumn="0">
<SIMPLE_STMT tokenValue="mailDic" tokenLine="12" tokenColumn="0">
<EXPRESSION_STMT tokenValue="mailDic" tokenLine="12" tokenColumn="0">
<TESTLIST_STAR_EXPR tokenValue="mailDic" tokenLine="12" tokenColumn="0">
<TEST tokenValue="mailDic" tokenLine="12" tokenColumn="0">
<ATOM tokenValue="mailDic" tokenLine="12" tokenColumn="0">
<NAME tokenValue="mailDic" tokenLine="12" tokenColumn="0">
<IDENTIFIER tokenValue="mailDic" tokenLine="12" tokenColumn="0"/>
</NAME>
</ATOM>
</TEST>
</TESTLIST_STAR_EXPR>
<ASSIGN tokenValue="=" tokenLine="12" tokenColumn="8"/>
<TESTLIST_STAR_EXPR tokenValue="{" tokenLine="12" tokenColumn="10">
<TEST tokenValue="{" tokenLine="12" tokenColumn="10">
<ATOM tokenValue="{" tokenLine="12" tokenColumn="10">
<LCURLYBRACE tokenValue="{" tokenLine="12" tokenColumn="10"/>
<DICTORSETMAKER tokenValue="'John'" tokenLine="12" tokenColumn="12">
<TEST tokenValue="'John'" tokenLine="12" tokenColumn="12">
<ATOM tokenValue="'John'" tokenLine="12" tokenColumn="12">
<STRING tokenValue="'John'" tokenLine="12" tokenColumn="12"/>
</ATOM>
</TEST>
<COLON tokenValue=":" tokenLine="12" tokenColumn="19"/>
<TEST tokenValue="'john.e@hotmail.com'" tokenLine="12" tokenColumn="21">
<ATOM tokenValue="'john.e@hotmail.com'" tokenLine="12" tokenColumn="21">
<STRING tokenValue="'john.e@hotmail.com'" tokenLine="12" tokenColumn="21"/>
</ATOM>
</TEST>
</DICTORSETMAKER>
<RCURLYBRACE tokenValue="}" tokenLine="12" tokenColumn="41"/>
</ATOM>
</TEST>
</TESTLIST_STAR_EXPR>
</EXPRESSION_STMT>
</SIMPLE_STMT>
</STMT_LIST>
<NEWLINE tokenValue="
" tokenLine="12" tokenColumn="42"/>
</STATEMENT>
<STATEMENT tokenValue="selection" tokenLine="14" tokenColumn="0">
<STMT_LIST tokenValue="selection" tokenLine="14" tokenColumn="0">
<SIMPLE_STMT tokenValue="selection" tokenLine="14" tokenColumn="0">
<EXPRESSION_STMT tokenValue="selection" tokenLine="14" tokenColumn="0">
<TESTLIST_STAR_EXPR tokenValue="selection" tokenLine="14" tokenColumn="0">
<TEST tokenValue="selection" tokenLine="14" tokenColumn="0">
<ATOM tokenValue="selection" tokenLine="14" tokenColumn="0">
<NAME tokenValue="selection" tokenLine="14" tokenColumn="0">
<IDENTIFIER tokenValue="selection" tokenLine="14" tokenColumn="0"/>
</NAME>
</ATOM>
</TEST>
</TESTLIST_STAR_EXPR>
<ASSIGN tokenValue="=" tokenLine="14" tokenColumn="10"/>
<TESTLIST_STAR_EXPR tokenValue="'mails=s%'" tokenLine="14" tokenColumn="12">
<TEST tokenValue="'mails=s%'" tokenLine="14" tokenColumn="12">
<M_EXPR tokenValue="'mails=s%'" tokenLine="14" tokenColumn="12">
<ATOM tokenValue="'mails=s%'" tokenLine="14" tokenColumn="12">
<STRING tokenValue="'mails=s%'" tokenLine="14" tokenColumn="12"/>
</ATOM>
<MOD tokenValue="%" tokenLine="14" tokenColumn="23"/>
<POWER tokenValue="mails" tokenLine="14" tokenColumn="24">
<ATOM tokenValue="mails" tokenLine="14" tokenColumn="24">
<NAME tokenValue="mails" tokenLine="14" tokenColumn="24">
<IDENTIFIER tokenValue="mails" tokenLine="14" tokenColumn="24"/>
</NAME>
</ATOM>
<TRAILER tokenValue="." tokenLine="14" tokenColumn="29">
<DOT tokenValue="." tokenLine="14" tokenColumn="29"/>
<NAME tokenValue="Emails" tokenLine="14" tokenColumn="30">
<IDENTIFIER tokenValue="Emails" tokenLine="14" tokenColumn="30"/>
</NAME>
</TRAILER>
</POWER>
</M_EXPR>
</TEST>
</TESTLIST_STAR_EXPR>
</EXPRESSION_STMT>
</SIMPLE_STMT>
</STMT_LIST>
</STATEMENT>
<EOF tokenValue="EOF" tokenLine="14" tokenColumn="36"/>
</FILE_INPUT>
问题是我想从mailDic字典中获取条目,而不是从选择中获取条目。你知道吗
你写道:
给定输入数据,当前表达式返回:
“mailList”一词不会出现在您的数据中,但是如果我假设它位于当前显示为“mailDic”的位置,那么您可以使用以下方法修复它:
如果要过滤掉原始输入中的
s%
,可以使用以下方法:否则,请用与您的问题匹配的输入更新您的问题,因为它会使来自that link I gave you的“可验证”失败,也就是说,我看不出哪里出错了,因为它是正确的;)。你知道吗
相关问题 更多 >
编程相关推荐