Regex 使用正则表达式拆分列表
我正在马拉松中编写一个测试,并试图只获取JTable的一列。 它的内容如下所示: 所需物品1,java.awt.Color[r=253,g=255,b=196],[附件],[全部 这是错误的,olololo@56fc12a9],[需要的项目2, java.awt.Color[r=179,g=237,b=181],[附件],[2级,3级], 是的,blablabla@cb331d80],[需要的项目\u 3, java.awt.Color[r=255,g=255,b=255],[ATTACHMENT],[1级,3级],false, wwwww@2aedb772]] 所以我需要的是: ['NEEDED_ITEM_1'、'NEEDED_ITEM_2'、'NEEDED_ITEM_3'] 我试图通过使用regex将表内容相应地拆分,从而将其转换为列表。但是,我在找到正确的表达式以完成此操作方面遇到了问题 如果我这样做:Regex 使用正则表达式拆分列表,regex,split,jython,Regex,Split,Jython,我正在马拉松中编写一个测试,并试图只获取JTable的一列。 它的内容如下所示: 所需物品1,java.awt.Color[r=253,g=255,b=196],[附件],[全部 这是错误的,olololo@56fc12a9],[需要的项目2, java.awt.Color[r=179,g=237,b=181],[附件],[2级,3级], 是的,blablabla@cb331d80],[需要的项目\u 3, java.awt.Color[r=255,g=255,b=255],[ATTACHMEN
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'、'needu ITEM_2'、'MAIL_INCOMING'、'2nd'、'needu 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
这个正则表达式怎么样?
\[([\w]+),\s*(?:java)
这取决于以下事实:下一项是java.awt.color。
然后,为了捕获所需的项目,您只需获取第一个组。这将不起作用,因为第一个拆分是:table=re.split('],[',get_p('myTable','Content')[2:-2])您不再需要拆分任何内容。只需构建完整字符串并使用正则表达式提取所需的信息。我不明白您的意思。在您的问题中,您陈述的内容如下:
[[NEEDED\u ITEM\u 1,java.awt.Color[r=253,g=255,b=196],[ATTACHMENT],[all levels],false,olololo@56fc12a9],[NEEDED_ITEM_2,java.awt.Color[r=179,g=237,b=181],[ATTACHMENT],[2级,3级],正确,blablabla@cb331d80],[NEEDED_ITEM_3,java.awt.Color[r=255,g=255,b=255],[ATTACHMENT],[1级,3级],false,wwwww@2aedb772]]
。如果您使用我在这个字符串上建议的正则表达式,您将得到您所需要的。哦,您的意思是根本不需要使用split吗?p.s.jython与python没有太大区别:)我只是凭直觉编写代码