我有一个大数据集,其中包含许多IUPAC有机化学术语,格式如下:
2_3_7_8_TETRACHLORODIBENZO_P_DIOXIN_EXPOSURE
我需要能够将其翻译成标准的IUPAC表格,即:
2,3,7,8-tetrachlorodibenzo-p-dioxin exposure
化学名称中的单个字符有一个有限的列表(例如,在上面的例子中是P
),在任何情况下不是_
将被[blank space]
替换。然而,我正在努力区分regex中_
被-
替换的情况和被,
替换的情况。我使用正则表达式替换命名的正则表达式和一个函数来替换它们。locants的capture regex是
(?P<locants>((^|\s)\d{1,2}\s){1,6})
(注意,在这种情况下,_
已经被空格取代,因此\s
而不是_
的普遍性)
但是我该如何写一些东西来确保2、3和7后面的空格被,
替换,而8后面的空格被-
替换呢?你知道吗
使用lookahead功能选择后面跟数字的破折号:
(你仍然需要做定位,但看起来你已经知道如何处理它们了。)
相关问题 更多 >
编程相关推荐