修复一个几乎正在工作的re.search过程

时间:2015-08-13 18:12:10

标签: regex python-3.x

我只想知道来自表A的字符串(例如,列表A)和#34;粗蛋白质(分钟)"是一个字符串,如表格B中的"Crude protein,protein,Protein,Protein (crude),Crude protein (min.)"字符串(例如,列表B)但实际上构建表B是为了包含表A中的每个字符串。

它是如何运作的:

for i in  range(0,len(B)):
  for j in range(0,len(A)):
      if re.search(re.escape(A[j][0]),B[i][0]) : 
          print("FOUND",A[j][0],"IN",B[i][0])

它适用于其中一些:

FOUND Angelica root IN Angelica root
FOUND Arginine IN Arginine
FOUND Biotin IN Biotin
FOUND Calcium (min.) IN Calcium,Calcium (min.)
FOUND Calcium: Phosphorus Ratio IN Calcium: Phosphorus Ratio

但是对于其中一些人来说,它不应该是:

FOUND Chloride IN Chloride glucosamine

那太多了。上一篇:

FOUND Chloride IN Chloride

就够了。

另一个例子:

FOUND Methionline-Cysteine IN Methionine Cystine,Methionline-Cysteine,Methionine-Cysteine
FOUND Methionine IN Methionine Cystine,Methionline-Cysteine,Methionine-Cysteine

第二个输出错了!我希望不要找到第二个。

我如何通过regex设法做到这一点?我觉得某个地方缺乏标准,但我不太了解它的工作原理。 或许还有另一个,也许是重建的表B否则呢?

0 个答案:

没有答案