对于不是特别复杂的化学式和化学方程式来说,可以用一个或多个正则表达式来匹配。
匹配绝大多数化学式的正则表达式:
[A-Z][a-z]?\d*|\((?:[^()]*(?:\(.*\))?[^()]*)+\)\d+
在线DEMO
当然,对于特别复杂的化学式,比如:
(1) K0.85Ca3(Si2.15Al2.85)O11(SO4)0.7(CO3)0.3
(2) (Na,Ca,K)8(Si,Al)12O24(SO4, Cl, CO3)3·5H2O
可能就不行了。
对于离子式暂时还不行。
暂未找到匹配绝大多数化学方程式的正则表达式。
另外发一个在线的JavaScript化学方程式自动配平工具:点这里
参考:用正则表达式解析化学式 —— Stack Overflow以及怎样通过正则表达式来查找化学式 —— Stack Overflow
关键字:php, JavaScript, 正则表达式