我正在解析大量的大型XML文件(高达1GB),并交叉引用给定字段的大约700个可能匹配项的列表。如果我找到了一个匹配项,我想知道我从列表中找到了哪个匹配项,而不是使用字段本身的文本。你知道吗
我的代码中有下面一行
<-- outside loops iterating over outer layer tags tags -->
if any(re.search(s, parsedOutTag.text) for s in preCompiledRegexList):
<-- checking innner layer tags for additional content-->
我想知道当条件满足时如何直接访问iterants
。我现在有一个非常黑客的实现我需要发生的事情。你知道吗
我必须承认,我确信这是显而易见的,我采用这一行是为了提高效率,这是关于堆栈溢出的另一个问题,所以我不知道所有的细节。你知道吗
我相信
any
函数是短路的,所以即使您可以从生成器表达式访问s
绑定,它也只能是第一个匹配实例。如果这是您想要的,那么您可以打开if
条件:如果要处理
preCompiledRegexList
中匹配的所有项,请删除上面的break
,或者使用仅生成与所需条件匹配的值的生成器:(请注意,没有必要使用不同的
outer_s
和inner_s
标签,我只想强调它们存在于不同的作用域中。)相关问题 更多 >
编程相关推荐