我正在Marathon中编写测试并试图只获得JTable的一列。 内容如下:
[[ NEEDED_ITEM_1 ,java.awt.Color [r = 253,g = 255,b = 196],[ATTACHMENT],[全部 等级],假,olololo @ 56fc12a9],[ NEEDED_ITEM_2 , java.awt.Color [r = 179,g = 237,b = 181],[ATTACHMENT],[2nd level,3rd], 是的,blablabla @ cb331d80],[ NEEDED_ITEM_3 , java.awt.Color [r = 255,g = 255,b = 255],[ATTACHMENT],[1st level,3rd level],false, WWWWW @ 2aedb772]]
所以我需要的是: [' NEEDED_ITEM_1'' NEEDED_ITEM_2'' NEEDED_ITEM_3']
我尝试将表格内容转换为列表,方法是使用正则表达式进行相应的拆分。但是,我在找到正确的表达方式时遇到了问题。
如果我这样做:
def get_my_table(my_list=[]):
# Get table entries
table = re.split('\], \[', get_p('myTable', 'Content')[2:-2])
for lineIn_table in table:
# Split up lines
lineIn_table = re.split('\W+', lineIn_table)
i = 1
for columnIn_lineIn_table in lineIn_table:
if i == 1:
my_list.append(columnIn_lineIn_table)
i += 1
return my_list
作为输出我只得到:
[' NEEDED_ITEM_1',' MAIL_INCOMING',' all',' NEEDED_ITEM_2',' MAIL_INCOMING',& #39;第二',' NEEDED_ITEM_3',' MAIL_INCOMING',' 1st']
我想过要替换
' \ W'
在第二次拆分中由
?[@] + \',\ W \' \ W [
将按这组字符分割列表
@ cb331d80],[
但是,这也没有给出正确的结果。我对正则表达式表达式还不太满意,所以会感激任何提示!
更新,我根据@Jodevan建议修改了它:
table = re.split('\[([\w]+),\s*(?:java)', get_p('myTable', 'Content')[2:-2])
for lineIn_table in table:
# Split up lines
lineIn_table = re.split('\W+', lineIn_table)
i = 1
for columnIn_lineIn_table in lineIn_table:
if i == 1:
my_list.append(columnIn_lineIn_table)
i += 1
return my_list
答案 0 :(得分:0)
这个正则表达式怎么样? \[([\w]+),\s*(?:java)
这依赖于下一个项目是java.awt.color的事实。
然后,为了捕获NEEDED_ITEM_X,您只需要获得第一组。