Как использовать регулярное выражение для определения количества водородов в химической формуле?
Какое выражение я должен использовать, чтобы определить количество атомов водорода в химической формуле?
Например:
C40H51N11O19 - 51 водород
C2HO - 1 водород
CO2 - без водорода (пустой)
Какие-либо предложения?
Спасибо!
Ура!
2 ответа
Вы можете начать использовать это регулярное выражение:
Н \ д *
H -> соответствует буквально символ H d* -> соответствует 0 до N раз цифра
посмотрите пример и попробуйте другое регулярное выражение по адресу: https://regex101.com/r/vdvH8S/2
Но регулярное выражение не будет конвертировать для вас результат, регулярное выражение только поиск.
Вам нужно обработать свой результат, сказав:
- H с номером: извлечь номер
- только H: 1
- нет совпадений: 0
Выражение Regex, которое будет соответствовать H с следующими цифрами:
/H(\d+)/g
- "H" - буквальное совпадение символа с H в данной химической формуле
- () объявляет группу захвата, поэтому вы можете затем захватить захваченную группу без H на любом языке программирования, который вы используете
- \ d будет соответствовать любой цифре вместе с модификатором +, который соответствует 1 или более
Здесь нет улова всех сценариев, вам лучше всего использовать что-то кроме регулярных выражений.