如何使用正则表达式来识别化学式中氢的数量?

How to use regexp to identify the number of hydrogens in a chemical formula?

我应该使用哪个表达式来确定化学式中氢原子的数量?

例如:

C40H51N11O19 - 51 个氢

C2HO - 1 个氢气

CO2 - 无氢(空)

有什么建议吗?

谢谢!

干杯!

将 H 与以下数字匹配的正则表达式为:

/H(\d+)/g
  • 'H' 是与给定化学品中的 H 匹配的字面字符 公式
  • () 声明了一个捕获组,因此您可以在使用任何编程语言时获取没有 H 的捕获组
  • \d 将匹配任何数字以及匹配 1 个或多个
  • 的 + 修饰符

这里没有包罗万象的场景,您最好使用正则表达式以外的东西。

您可以开始使用这个正则表达式了:

H\d*

H -> 按字面意思匹配 H 字符 d* -> 匹配 0 到 N 次一个数字

查看示例并自己尝试其他正则表达式: https://regex101.com/r/vdvH8S/2

但是正则表达式不会为你转换结果,正则表达式只做查找。

您需要处理结果说:

  • H with a number : 提取数字
  • 只有 H : 1
  • 不匹配:0