首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >模式匹配

模式匹配
EN

Stack Overflow用户
提问于 2010-10-29 20:20:15
回答 3查看 323关注 0票数 0

我马上就要开始一个新项目的工作了。基本上,这里有许多化合物,每个化合物都有自己的前缀/标识符。例如,几个字符后面跟着几个整数之类的东西,尽管它们都是不同的。

我想知道是否有一种算法可以有效地匹配这些元素,而不是使用大量的if。

我猜一个带有关键->值的散列映射,关键字是一些掩码可能是很好的,但我希望有人能提出一些更复杂的建议,我可以使用。

因为它不仅仅是化合物,不同的值的数量可能是巨大的。

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-10-29 22:33:59

考虑以下事实:

1)两个分子可以具有相同的结构标识符,例如由立体测量或比较两个复杂分子(特别是具有许多苯环)引起的。

2)考虑http://en.wikipedia.org/wiki/International_Chemical_Identifier。它定义了明确的分子结构版本,你可以从中提取结构式。例如:

代码语言:javascript
复制
1/C2H6O/c1-2-3/h3H,2H2,1H3

代表的是

代码语言:javascript
复制
CH3CH2OH (ethanol)  

3)您可以查看MQL分子查询语言

4)自己实现它可能需要很长时间。有一些上下文无关的语法,但它们非常复杂,请尝试查找一些自由分子查询

票数 2
EN

Stack Overflow用户

发布于 2010-10-29 20:22:51

将您的公式转换为字符串,然后使用正则表达式匹配,这将使您的生活更容易,您将学习正则表达式,这是一件相当方便的事情。

票数 0
EN

Stack Overflow用户

发布于 2010-10-29 20:27:34

如果你想专业地做这件事,可以创建一个语法文件并使用ANTLR生成一个解析器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4051769

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档