动态查询包含特定子字符的变量,比如包含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
錯誤在
line.split(' ') or line.split('.')
短路操作的條件不成立啊
'JSQEXBasicStructure.JSQEX_Room = function(a) {'
直接结果
['JSQEXBasicStructure.JSQEX_Room', '=', 'function(a)', '{']