如何使用正则表达式来识别化学式中氢的数量?
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
我应该使用哪个表达式来确定化学式中氢原子的数量?
例如:
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