我正在尝试使用Python提取文件的特定部分。文件名各不相同,因此我无法指定从何处开始使用特定字符串。
文件名如下:
class createTable {
public static void main (String args []){
int array[] = {2,13,15,67,87,34,66,23,11,93};
printTable (array);
}
static void printTable (int[] array){
System.out.println ("Key\tValue");
for (int key = 0; key < array.length; key++){
System.out.println (key + "\t" + array [key]);
}
}
}
加粗部分是我想要抓住的。文件的开头都不同,文件的其余部分根据文件的存储位置而有所不同,因此我需要一种无需太具体就可以抓取字符串的方法。
ABC1D2E34_**ABC12345-67-Q89**_ABC12345_6_7_Scoring.csv
我已经尝试使用上面的代码,并且可以获得 ABC12345-67-。 但是,当我尝试添加以获取最后一点时,我会不断获得超出所需的信息: ABC12345-67-Q89_ABC12345_6_7 _
似乎应该有一个简单的修复程序,但是我还没有弄清楚,因此可以提供任何帮助。
答案 0 :(得分:1)
使用两个取反的字符集很简单,第一个字符集锚定在字符串的开头:
filename = 'ABC1D2E34_ABC12345-67-Q89_ABC12345_6_7_Scoring.csv'
print(re.findall('^[^_]+_([^_]+)',filename))
打印:
['ABC12345-67-Q89']
请注意,正则表达式不是唯一的,实际上不是最佳解决方案。
您可以按照以下评论中的说明使用filename.split('_')[1]
。