具体来说,我的(虽然有限的)研究导致我找到了这篇文章,其中给出了一个用于当前接受的化学符号的正则表达式,我将在此处引用它以供参考
[BCFHIKNOPSUVWY]|[ISZ][nr]|[ACELP][ru]|A[cglmst]|B[aehikr]|C[adeflos]|D[bsy]|Es|F[elmr]|G[ade]|H[efgos]|Kr|L[aiv]|M[cdgnot]|N[abdehiop]|O[gs]|P[abdmot]|R[abe-hnu]|S[bcegim]|T[abcehilms]|Xe|Yb(例如,
C
,Cm
和Cn
会通过,但不会通过Cg
或Cx
。)与以前的问题一样,我还需要匹配数字、完整的括号和完整的方括号,以便匹配
C2H6O
和(CH3)2CFCOO(CH2)2Si(CH3)2Cl
。那么,如何将先前的解决方案与用于匹配有效化学元素的大正则表达式结合起来,以严格匹配化学式?
(如果添加并不麻烦,非常感谢提供每个部分如何人工解析正则表达式的详细说明,但这并非必需。)
LL(*)
(LL-regular)语言。 - amon