化学反応式分解試し中(2)
この夏頃からゲームにあんまり興味がなくなり,その代わりWeb小説にはまって読みふけるのに時間を取られています。
いつもはその誘惑に負けることが多いんですが,今日はすこし正規表現に引っ張られてやってみています。
サブマッチというのを完全に誤解していることがよーくわかったので,とにかく正規表現のパターンをいじってみる。
うまく行きません(;´▽`A``
Sub 正規表現() Dim RegObj As RegExp: Set RegObj = New RegExp Dim MatchObj As MatchCollection, 化学反応式 As String 化学反応式 = "C3H8+5O2→3CO2+4H2O" With RegObj .Global = True '複数マッチ 大事! .Pattern = "\+|→|([1-9]*)(([A-Z][a-z]?)([1-9]*))*" Set MatchObj = .Execute(化学反応式) End With Stop End Sub
こうしてみて,
きちんとばらけていってくれますね。
そして,係数と各元素と添え字部分をSubmatchesに収納できたら望みどおりなんですが,
そううまくはいってくれない。
Item1に入っているのは係数だと思うので,これは空文字列になるのは納得。たぶん想定通り
C3がどこかに行ってしまう。
他も,それぞれの物質の最後の部分しか収納してくれない。
むーん
(´・ω・)
また暇を見つけて考えよう。。
むずいなぁ