动态查询包含特定子字符的变量,比如包含JSQ的变量。
JSQEXBasicStructure.JSQEX_Room = function(a) { JSQEXBasicStructure.JSQEX_Loop.call(this, a); this.JSQEX_innerWalls = []; this.JSQEX_graph = null; JSQEXBasicStructure.JSQEX_Room =null };
通过换行或者空格或者“.”提取,searchkey 为 JSQ
if raw.find(searchkey) != -1: lines = raw.split('\n') for line in lines: chars = line.split(' ') or line.split('.') for char in chars: if char =='': pass elif char.find(searchkey) != -1 and isJSVar(char): list_of_contain_lines.append(char) print lines, line, list_of_contain_lines
期待结果:
JSQEXBasicStructure JSQEX_Room JSQEX_Loop JSQEX_innerWalls JSQEX_roomType JSQEX_roomHeight
实际结果:
this.JSQEX_innerWalls this.JSQEX_roomType this.JSQEX_roomHeight this.JSQEX_surf
The error is in
line.split(' ') or line.split('.')
The conditions for short circuit operation are not met
'JSQEXBasicStructure.JSQEX_Room = function(a) {'
直接结果
['JSQEXBasicStructure.JSQEX_Room', '=', 'function(a)', '{']