『UBound(Split(.Pattern, 』(jahakas)
With CreateObject("VBScript.RegExp") .Global = True .IgnoreCase = True
.Pattern = "([A-Za-z]+)(\d+)"
MsgBox UBound(Split(.Pattern, "("))
S = "Abc123DEFGH4567ijkl890xxx000y999"
For Each m In .Execute(S) With m MsgBox "SubMatches数= " & .SubMatches.Count; end with next end with
このマクロで確認すると、UBound(Split(.Pattern, "("))と.SubMatches.Countは同じになると思うのですが、
一般的にそう考えていいんでしょうか?
同じにならない場合は、どんなケースがあるんでしょうか?
< 使用 Excel:unknown、使用 OS:Windows11 >
いいんじゃないかと思います。 ・入れ子にした場合は、まさにカッコの位置が左にあるものから順に対応づけられますし、 ・ | を含む場合、マッチしない方にはEmptyを値とするものが作られますから。
まあ、そのSPLIT式では、"("自体にマッチする \( もカウントされてしまい不一致になりますけどね。(just a joke) (xyz) 2025/06/29(日) 13:25:24
なにも反応がないのは残念です。
これだけだとナンなので、追記しておきます。 意図したカッコの使い方と違うかもしれませんが、次のような使い方もあるので、 チェックしておかれると良いかも知れません。 (?= )肯定先読み (?! ) 否定先読み (?: ) 記憶せず
(xyz) 2025/07/02(水) 15:44:48
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.